Wenzhe Zhou created IMPALA-12770: ------------------------------------ Summary: ExprRewriter enter infinite loop for nested Case statements Key: IMPALA-12770 URL: https://issues.apache.org/jira/browse/IMPALA-12770 Project: IMPALA Issue Type: Bug Components: Frontend Reporter: Wenzhe Zhou
ExprRewriter enter infinite loop when run following query with nested Case statement: {code:java} select case case '' when 'abc' then t4.string_col end when 'none' then 'Total' end as fcol from functional.alltypes as t4 limit 1; {code} jstack shows Impala enter infinite loop in ExprRewriter functions: {code:java} "Thread-16" #39 prio=5 os_prio=0 tid=0x000000000e188000 nid=0x90ec8 runnable [0x00007fa8b3d23000] java.lang.Thread.State: RUNNABLE at org.apache.impala.service.FeSupport.NativeEvalExprsWithoutRow(Native Method) at org.apache.impala.service.FeSupport.EvalExprsWithoutRowBounded(FeSupport.java:261) at org.apache.impala.service.FeSupport.EvalExprWithoutRowBounded(FeSupport.java:205) at org.apache.impala.analysis.LiteralExpr.createBounded(LiteralExpr.java:214) at org.apache.impala.rewrite.FoldConstantsRule.apply(FoldConstantsRule.java:68) at org.apache.impala.rewrite.ExprRewriter.applyRuleBottomUp(ExprRewriter.java:85) at org.apache.impala.rewrite.ExprRewriter.applyRuleRepeatedly(ExprRewriter.java:71) at org.apache.impala.rewrite.ExprRewriter.rewrite(ExprRewriter.java:55) at org.apache.impala.rewrite.SimplifyConditionalsRule.simplifyCaseExpr(SimplifyConditionalsRule.java:240) at org.apache.impala.rewrite.SimplifyConditionalsRule.apply(SimplifyConditionalsRule.java:71) at org.apache.impala.rewrite.ExprRewriter.applyRuleBottomUp(ExprRewriter.java:85) at org.apache.impala.rewrite.ExprRewriter.applyRuleRepeatedly(ExprRewriter.java:71) at org.apache.impala.rewrite.ExprRewriter.rewrite(ExprRewriter.java:55) at org.apache.impala.analysis.SelectList.rewriteExprs(SelectList.java:100) at org.apache.impala.analysis.SelectStmt.rewriteExprs(SelectStmt.java:1517) at org.apache.impala.analysis.AnalysisContext.analyze(AnalysisContext.java:585) at org.apache.impala.analysis.AnalysisContext.analyzeAndAuthorize(AnalysisContext.java:492) at org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2397) at org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2144) at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1913) at org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:169) {code} The issue does not happen if a matching value is found for the inner 'case' statement, or adding 'else' for the inner 'case' statement. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org For additional commands, e-mail: issues-all-h...@impala.apache.org