[ https://issues.apache.org/jira/browse/HIVE-12923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15134639#comment-15134639 ]
Jesus Camacho Rodriguez commented on HIVE-12923: ------------------------------------------------ [~hsubramaniyan], I added a minor comment to the patch. But I do have other global concerns. First, we might have regressions on join merging in the return path. Given the current patch, projects might not be pulled up if there is an Aggregate with grouping id in the subtree rooted at one of its inputs. Thus, project operators might stay between multiple joins. Second, are we sure that in every case the Project operator that prunes the indicator columns of the Aggregate operator is going to stay just on top? For instance, could by any chance a Filter stay between them? In general, this is a workaround to continue progressing on the return path, but we definitively need the right solution in place: reimplementing indicator columns into a single column in Calcite. Thanks > CBO: Calcite Operator To Hive Operator (Calcite Return Path): TestCliDriver > groupby_grouping_sets4.q failure > ------------------------------------------------------------------------------------------------------------ > > Key: HIVE-12923 > URL: https://issues.apache.org/jira/browse/HIVE-12923 > Project: Hive > Issue Type: Sub-task > Components: CBO > Reporter: Hari Sankar Sivarama Subramaniyan > Assignee: Hari Sankar Sivarama Subramaniyan > Attachments: HIVE-12923.1.patch, HIVE-12923.2.patch > > > {code} > EXPLAIN > SELECT * FROM > (SELECT a, b, count(*) from T1 where a < 3 group by a, b with cube) subq1 > join > (SELECT a, b, count(*) from T1 where a < 3 group by a, b with cube) subq2 > on subq1.a = subq2.a > {code} > Stack trace: > {code} > java.lang.NullPointerException > at > org.apache.hadoop.hive.ql.optimizer.ColumnPrunerProcFactory.pruneJoinOperator(ColumnPrunerProcFactory.java:1110) > at > org.apache.hadoop.hive.ql.optimizer.ColumnPrunerProcFactory.access$400(ColumnPrunerProcFactory.java:85) > at > org.apache.hadoop.hive.ql.optimizer.ColumnPrunerProcFactory$ColumnPrunerJoinProc.process(ColumnPrunerProcFactory.java:941) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89) > at > org.apache.hadoop.hive.ql.optimizer.ColumnPruner$ColumnPrunerWalker.walk(ColumnPruner.java:172) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120) > at > org.apache.hadoop.hive.ql.optimizer.ColumnPruner.transform(ColumnPruner.java:135) > at > org.apache.hadoop.hive.ql.optimizer.Optimizer.optimize(Optimizer.java:237) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10176) > at > org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:229) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:239) > at > org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:74) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:239) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:472) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:312) > at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1168) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1256) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1094) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1082) > at > org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184) > at > org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:400) > at > org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:336) > at > org.apache.hadoop.hive.ql.QTestUtil.executeClientInternal(QTestUtil.java:1129) > at > org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:1103) > at > org.apache.hadoop.hive.cli.TestCliDriver.runTest(TestCliDriver.java:10444) > at > org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_groupby_grouping_sets4(TestCliDriver.java:3313) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)