|
@@ -34,6 +34,7 @@ import org.elasticsearch.xpack.sql.expression.function.scalar.math.Cos;
|
|
|
import org.elasticsearch.xpack.sql.expression.function.scalar.math.E;
|
|
|
import org.elasticsearch.xpack.sql.expression.function.scalar.math.Floor;
|
|
|
import org.elasticsearch.xpack.sql.expression.function.scalar.string.Ascii;
|
|
|
+import org.elasticsearch.xpack.sql.expression.function.scalar.string.Concat;
|
|
|
import org.elasticsearch.xpack.sql.expression.function.scalar.string.Repeat;
|
|
|
import org.elasticsearch.xpack.sql.expression.predicate.BinaryOperator;
|
|
|
import org.elasticsearch.xpack.sql.expression.predicate.Range;
|
|
@@ -87,6 +88,7 @@ import org.elasticsearch.xpack.sql.tree.NodeInfo;
|
|
|
import org.elasticsearch.xpack.sql.type.DataType;
|
|
|
import org.elasticsearch.xpack.sql.type.EsField;
|
|
|
import org.elasticsearch.xpack.sql.util.CollectionUtils;
|
|
|
+import org.elasticsearch.xpack.sql.util.StringUtils;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Collections;
|
|
@@ -519,6 +521,13 @@ public class OptimizerTests extends ESTestCase {
|
|
|
assertEquals(ONE, e.children().get(0));
|
|
|
assertEquals(TWO, e.children().get(1));
|
|
|
}
|
|
|
+
|
|
|
+ public void testConcatFoldingIsNotNull() {
|
|
|
+ FoldNull foldNull = new FoldNull();
|
|
|
+ assertEquals(1, foldNull.rule(new Concat(EMPTY, Literal.NULL, ONE)).fold());
|
|
|
+ assertEquals(1, foldNull.rule(new Concat(EMPTY, ONE, Literal.NULL)).fold());
|
|
|
+ assertEquals(StringUtils.EMPTY, foldNull.rule(new Concat(EMPTY, Literal.NULL, Literal.NULL)).fold());
|
|
|
+ }
|
|
|
|
|
|
//
|
|
|
// Logical simplifications
|