[ https://issues.apache.org/jira/browse/DRILL-2218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aman Sinha updated DRILL-2218: ------------------------------ Fix Version/s: (was: 0.9.0) 1.0.0 > Constant folding rule exposing planning bugs and not being used in plan where > the constant expression is in the select list > --------------------------------------------------------------------------------------------------------------------------- > > Key: DRILL-2218 > URL: https://issues.apache.org/jira/browse/DRILL-2218 > Project: Apache Drill > Issue Type: Improvement > Components: Query Planning & Optimization > Reporter: Jason Altekruse > Assignee: Aman Sinha > Fix For: 1.0.0 > > > This test method and rule is not currently in the master branch, but it does > appear in the patch posted for constant expression folding during planning, > DRILL-2060. Once it is merged, the test > TestConstantFolding.testConstExprFolding_InSelect() which is currently > ignored, will be failing. The issue is that even though the constant folding > rule for project is firing, and I have traced it to see that a replacement > project with a literal is created, it is not being selected in the final > plan. This seems rather odd, as there is a comment in the last line of the > onMatch() method of the rule that says the following. This does not appear to > be having the desired effect, may need to file a bug in calcite. > {code} > // New plan is absolutely better than old plan. > call.getPlanner().setImportance(project, 0.0); > {code} > Here is the query from the test, I expect the sum to be folded in planning > with the newly enabled project constant folding rule. > {code} > select columns[0], 3+5 from cp.`test_input.csv` > {code} > There also some planning bugs that are exposed when this rule is enabled, > even if the ReduceExpressionsRule.PROJECT_INSTANCE has no impact on the plan > itself. > It is causing a planning bug for the TestAggregateFunctions.testDrill2092 -as > well as TestProjectPushDown.testProjectPastJoinPastFilterPastJoinPushDown()-. > The rule's OnMatch is being called, but not modifying the plan. It seems like > its presence in the optimizer is making another rule fire that is creating a > bad plan. -- This message was sent by Atlassian JIRA (v6.3.4#6332)