|
|
@@ -13,12 +13,16 @@ import org.apache.lucene.util.BytesRef;
|
|
|
import org.elasticsearch.geo.GeometryTestUtils;
|
|
|
import org.elasticsearch.geo.ShapeTestUtils;
|
|
|
import org.elasticsearch.xpack.esql.core.expression.Expression;
|
|
|
+import org.elasticsearch.xpack.esql.core.expression.FieldAttribute;
|
|
|
import org.elasticsearch.xpack.esql.core.expression.FoldContext;
|
|
|
import org.elasticsearch.xpack.esql.core.expression.Literal;
|
|
|
+import org.elasticsearch.xpack.esql.core.querydsl.query.TermsQuery;
|
|
|
import org.elasticsearch.xpack.esql.core.tree.Source;
|
|
|
import org.elasticsearch.xpack.esql.core.type.DataType;
|
|
|
+import org.elasticsearch.xpack.esql.core.type.EsField;
|
|
|
import org.elasticsearch.xpack.esql.expression.function.AbstractFunctionTestCase;
|
|
|
import org.elasticsearch.xpack.esql.expression.function.TestCaseSupplier;
|
|
|
+import org.elasticsearch.xpack.esql.planner.TranslatorHandler;
|
|
|
import org.junit.AfterClass;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
@@ -26,6 +30,8 @@ import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Locale;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.function.Supplier;
|
|
|
import java.util.stream.IntStream;
|
|
|
|
|
|
@@ -81,6 +87,16 @@ public class InTests extends AbstractFunctionTestCase {
|
|
|
return of(EMPTY, value);
|
|
|
}
|
|
|
|
|
|
+ public void testConvertedNull() {
|
|
|
+ In in = new In(
|
|
|
+ EMPTY,
|
|
|
+ new FieldAttribute(Source.EMPTY, "field", new EsField("suffix", DataType.KEYWORD, Map.of(), true)),
|
|
|
+ Arrays.asList(ONE, new Literal(Source.EMPTY, null, randomFrom(DataType.types())), THREE)
|
|
|
+ );
|
|
|
+ var query = in.asQuery(TranslatorHandler.TRANSLATOR_HANDLER);
|
|
|
+ assertEquals(new TermsQuery(EMPTY, "field", Set.of(1, 3)), query);
|
|
|
+ }
|
|
|
+
|
|
|
@ParametersFactory
|
|
|
public static Iterable<Object[]> parameters() {
|
|
|
List<TestCaseSupplier> suppliers = new ArrayList<>();
|