Skip to content

SQL: aliased FLOOR and CEIL functions fail with NPE #49556

@astefan

Description

@astefan

SELECT FLOOR(CAST(NULL AS DOUBLE)) AS x FROM test_emp

results in

java.lang.NullPointerException: null
        at org.elasticsearch.xpack.sql.expression.function.scalar.math.Floor.fold(Floor.java:36) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.NamedExpression.asPipe(NamedExpression.java:56) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.function.scalar.ScalarFunction.toAttribute(ScalarFunction.java:39) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.function.scalar.ScalarFunction.toAttribute(ScalarFunction.java:23) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.Expressions.attribute(Expressions.java:150) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.Alias.createAttribute(Alias.java:109) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.Alias.toAttribute(Alias.java:95) ~[?:?]
        at org.elasticsearch.xpack.sql.optimizer.Optimizer$ReplaceFoldableAttributes.lambda$rule$0(Optimizer.java:1143) ~[?:?]
        at org.elasticsearch.xpack.sql.tree.Node.lambda$forEachDown$1(Node.java:74) ~[?:?]
        at org.elasticsearch.xpack.sql.tree.Node.forEachDown(Node.java:66) ~[?:?]
        at org.elasticsearch.xpack.sql.tree.Node.forEachDown(Node.java:72) ~[?:?]
        at org.elasticsearch.xpack.sql.optimizer.Optimizer$ReplaceFoldableAttributes.rule(Optimizer.java:1139) ~[?:?]
        at org.elasticsearch.xpack.sql.optimizer.Optimizer$ReplaceFoldableAttributes.apply(Optimizer.java:1130) ~[?:?]
        at org.elasticsearch.xpack.sql.optimizer.Optimizer$ReplaceFoldableAttributes.apply(Optimizer.java:1126) ~[?:?]
        at org.elasticsearch.xpack.sql.rule.RuleExecutor$Transformation.<init>(RuleExecutor.java:82) ~[?:?]
        at org.elasticsearch.xpack.sql.rule.RuleExecutor.executeWithInfo(RuleExecutor.java:158) ~[?:?]
        at org.elasticsearch.xpack.sql.rule.RuleExecutor.execute(RuleExecutor.java:130) ~[?:?]
        at org.elasticsearch.xpack.sql.optimizer.Optimizer.optimize(Optimizer.java:122) ~[?:?]
        at org.elasticsearch.xpack.sql.session.SqlSession.lambda$optimizedPlan$3(SqlSession.java:156) ~[?:?]

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions