Skip to content

SQL: IIF with NULL condition throws error #46268

@astefan

Description

@astefan

SELECT IIF(NULL, hire_date, birth_date) FROM test_emp

Result:

{
    "error": {
        "root_cause": [
            {
                "type": "index_out_of_bounds_exception",
                "reason": "Index 0 out of bounds for length 0"
            }
        ],
        "type": "index_out_of_bounds_exception",
        "reason": "Index 0 out of bounds for length 0"
    },
    "status": 500
}

Stacktrace on 7.x:

[elasticsearch] [2019-09-03T15:44:50,365][WARN ][r.suppressed             ] [node-0] path: /_sql, params: {format=json}
[elasticsearch] java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
[elasticsearch]         at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
[elasticsearch]         at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
[elasticsearch]         at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[?:?]
[elasticsearch]         at java.util.Objects.checkIndex(Objects.java:372) ~[?:?]
[elasticsearch]         at java.util.ArrayList$SubList.get(ArrayList.java:1178) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.expression.predicate.conditional.Iif.resolveType(Iif.java:44) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.expression.Expression.typeResolved(Expression.java:94) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.expression.Expression.resolved(Expression.java:124) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.planner.Verifier.lambda$verifyMappingPlan$0(Verifier.java:68) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.tree.Node.forEachUp(Node.java:82) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.plan.QueryPlan.lambda$forEachExpressionsUp$8(QueryPlan.java:107) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.plan.QueryPlan.doForEachExpression(QueryPlan.java:116) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.plan.QueryPlan.doForEachExpression(QueryPlan.java:121) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.plan.QueryPlan.lambda$forEachExpressionsUp$9(QueryPlan.java:107) ~[?:?]
[elasticsearch]         at org.elasticsearch.xpack.sql.tree.Node.forEachProperty(Node.java:111) ~[?:?]

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions