-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Closed
Labels
Description
Providing a null value parameter to the LIKE operator and a parameter marker leads to an NPE, like exemplified below.
Example:
SELECT ... FROM ... WHERE field LIKE ?
and parameter {"type": ..., "value":null}
java.lang.NullPointerException: null
at org.elasticsearch.xpack.sql.parser.ExpressionBuilder.visitPattern(ExpressionBuilder.java:266) ~[?:?]
at org.elasticsearch.xpack.sql.parser.ExpressionBuilder.visitPredicated(ExpressionBuilder.java:235) ~[?:?]
at org.elasticsearch.xpack.sql.parser.ExpressionBuilder.visitPredicated(ExpressionBuilder.java:138) ~[?:?]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$PredicatedContext.accept(SqlBaseParser.java:3590) ~[?:?]
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70) ~[antlr4-runtime-4.5.3.jar:4.5.3]
at org.elasticsearch.xpack.sql.parser.SqlBaseBaseVisitor.visitBooleanDefault(SqlBaseBaseVisitor.java:300) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$BooleanDefaultContext.accept(SqlBaseParser.java:3227) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.ExpressionBuilder.expression(ExpressionBuilder.java:147) ~[?:?]
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuerySpecification(LogicalPlanBuilder.java:126) ~[?:?]
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuerySpecification(LogicalPlanBuilder.java:64) ~[?:?]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QuerySpecificationContext.accept(SqlBaseParser.java:1723) ~[?:?]
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70) ~[antlr4-runtime-4.5.3.jar:4.5.3]
at org.elasticsearch.xpack.sql.parser.SqlBaseBaseVisitor.visitQueryPrimaryDefault(SqlBaseBaseVisitor.java:125) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QueryPrimaryDefaultContext.accept(SqlBaseParser.java:1553) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQueryNoWith(LogicalPlanBuilder.java:95) ~[?:?]
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQueryNoWith(LogicalPlanBuilder.java:64) ~[?:?]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QueryNoWithContext.accept(SqlBaseParser.java:1363) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuery(LogicalPlanBuilder.java:72) ~[?:?]
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuery(LogicalPlanBuilder.java:64) ~[?:?]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QueryContext.accept(SqlBaseParser.java:1280) ~[?:?]
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70) ~[antlr4-runtime-4.5.3.jar:4.5.3]
at org.elasticsearch.xpack.sql.parser.SqlBaseBaseVisitor.visitStatementDefault(SqlBaseBaseVisitor.java:34) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$StatementDefaultContext.accept(SqlBaseParser.java:466) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AstBuilder.visitSingleStatement(AstBuilder.java:26) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AstBuilder.visitSingleStatement(AstBuilder.java:15) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$SingleStatementContext.accept(SqlBaseParser.java:186) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.SqlParser.invokeParser(SqlParser.java:129) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.parser.SqlParser.createStatement(SqlParser.java:66) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.session.SqlSession.doParse(SqlSession.java:99) ~[x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.session.SqlSession.sqlExecutable(SqlSession.java:169) [x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.session.SqlSession.sql(SqlSession.java:164) [x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.execution.PlanExecutor.sql(PlanExecutor.java:98) [x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.plugin.TransportSqlQueryAction.operation(TransportSqlQueryAction.java:83) [x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.plugin.TransportSqlQueryAction.doExecute(TransportSqlQueryAction.java:68) [x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.xpack.sql.plugin.TransportSqlQueryAction.doExecute(TransportSqlQueryAction.java:46) [x-pack-sql-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:88) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]