Skip to content

Commit d1e1018

Browse files
committed
Added test
1 parent 89abace commit d1e1018

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/optimizer/OptimizerTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.elasticsearch.xpack.sql.expression.Expression;
1111
import org.elasticsearch.xpack.sql.expression.Expressions;
1212
import org.elasticsearch.xpack.sql.expression.FieldAttribute;
13+
import org.elasticsearch.xpack.sql.expression.Foldables;
1314
import org.elasticsearch.xpack.sql.expression.Literal;
1415
import org.elasticsearch.xpack.sql.expression.NamedExpression;
1516
import org.elasticsearch.xpack.sql.expression.Order;
@@ -82,6 +83,7 @@
8283
import static java.util.Collections.emptyMap;
8384
import static java.util.Collections.singletonList;
8485
import static org.elasticsearch.xpack.sql.tree.Location.EMPTY;
86+
import static org.hamcrest.Matchers.contains;
8587

8688
public class OptimizerTests extends ESTestCase {
8789

@@ -311,6 +313,16 @@ public void testConstantFoldingIn() {
311313
assertEquals(true, result.value());
312314
}
313315

316+
public void testConstantFoldingIn_LeftValueNotFoldable() {
317+
Project p = new Project(EMPTY, FROM(), Collections.singletonList(
318+
new In(EMPTY, getFieldAttribute(),
319+
Arrays.asList(ONE, TWO, ONE, THREE, new Sub(EMPTY, THREE, ONE), ONE, FOUR, new Abs(EMPTY, new Sub(EMPTY, TWO, FIVE))))));
320+
p = (Project) new ConstantFolding().apply(p);
321+
assertEquals(1, p.projections().size());
322+
In in = (In) p.projections().get(0);
323+
assertThat(Foldables.valuesOf(in.list(), DataType.INTEGER), contains(1 ,2 ,3 ,4));
324+
}
325+
314326
public void testArithmeticFolding() {
315327
assertEquals(10, foldOperator(new Add(EMPTY, L(7), THREE)));
316328
assertEquals(4, foldOperator(new Sub(EMPTY, L(7), THREE)));

0 commit comments

Comments
 (0)