starrocks icon indicating copy to clipboard operation
starrocks copied to clipboard

NPE for query `NOT NULL IN ( k1, k1 ) AND NULL >= k1`

Open ZiheLiu opened this issue 9 months ago • 0 comments

Steps to reproduce the behavior (Required)

CREATE TABLE `t1` (
  `k1` bigint(20) NULL COMMENT "",
  `c1` bigint(20) NULL COMMENT ""
) ENGINE=OLAP
DUPLICATE KEY(`k1`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 32
PROPERTIES (
"replication_num" = "1"
);
insert into t1 values(1, 1);
select * from t1 where NOT NULL IN (  k1, k1  ) AND NULL >= k1

Expected behavior (Required)

Return results normally.

Real behavior (Required)

select * from t1 where NOT NULL IN (  k1, k1  ) AND NULL >= k1
(1064, 'Unknown error')

The FE stack:

2024-04-28 21:57:28.518+08:00 WARN (starrocks-mysql-nio-pool-4|23026) [StmtExecutor.execute():708] execute Exception, sql select * from t1 where NOT NULL IN ( - - k1, ( + k1 ), - k1 ) AND NULL >= ( + k1 )
java.lang.NullPointerException: null
    at java.util.AbstractCollection.addAll(AbstractCollection.java:351) ~[?:?]
    at com.starrocks.sql.optimizer.rewrite.scalar.NormalizePredicateRule.getOptimizedCompoundTree(NormalizePredicateRule.java:160) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.rewrite.scalar.NormalizePredicateRule.visitCompoundPredicate(NormalizePredicateRule.java:139) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.rewrite.scalar.NormalizePredicateRule.visitCompoundPredicate(NormalizePredicateRule.java:49) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.operator.scalar.CompoundPredicateOperator.accept(CompoundPredicateOperator.java:80) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.rewrite.scalar.BaseScalarOperatorRewriteRule.apply(BaseScalarOperatorRewriteRule.java:41) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.rewrite.ScalarOperatorRewriter.applyRuleBottomUp(ScalarOperatorRewriter.java:119) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.rewrite.ScalarOperatorRewriter.rewriteByRule(ScalarOperatorRewriter.java:100) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.rewrite.ScalarOperatorRewriter.rewrite(ScalarOperatorRewriter.java:82) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.SqlToScalarOperatorTranslator.translate(SqlToScalarOperatorTranslator.java:191) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.QueryTransformer.filter(QueryTransformer.java:262) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.QueryTransformer.plan(QueryTransformer.java:98) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.RelationTransformer.visitSelect(RelationTransformer.java:268) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.RelationTransformer.visitSelect(RelationTransformer.java:149) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.ast.SelectRelation.accept(SelectRelation.java:242) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:71) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:67) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.RelationTransformer.transform(RelationTransformer.java:218) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.optimizer.transformer.RelationTransformer.transformWithSelectLimit(RelationTransformer.java:186) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.StatementPlanner.createQueryPlanWithReTry(StatementPlanner.java:249) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:129) ~[starrocks-fe.jar:?]
    at com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:90) ~[starrocks-fe.jar:?]
    at com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:520) ~[starrocks-fe.jar:?]
    at com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:422) ~[starrocks-fe.jar:?]
    at com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:618) ~[starrocks-fe.jar:?]
    at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:938) ~[starrocks-fe.jar:?]
    at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:69) ~[starrocks-fe.jar:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) ~[?:?]

StarRocks version (Required)

main

ZiheLiu avatar Apr 29 '24 02:04 ZiheLiu