Impala Public Jenkins has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/24787 )
Change subject: IMPALA-15327: CTE rewrite algorithm cannot explore all suggestions ...................................................................... IMPALA-15327: CTE rewrite algorithm cannot explore all suggestions The rewrite algorithm relies on the MaterializedViewRule hierarchy. In order to perform a rewrite the MV rules use the following RelMetadataQuery APIs: * RelMetadataQuery#getNodeTypes * RelMetadataQuery#getAllPredicates * RelMetadataQuery#getExpressionLineage * RelMetadataQuery#getTableReferences However, the standard BuiltInMetadata handlers provided by Calcite don't recognize the ImpalaCTEConsumer operator so once it is introduced in the plan by one rewrite all the rest that fall in the same RelSubset are nuked. The commit adds customised handlers for returning the appropriate metadata when encountering ImpalaCTEConsumer allowing further rewrites to trigger properly and explore the entire search space. Change-Id: Ic32d11cd82e2484944b6d03d5fb56900e8e1b7a4 Reviewed-on: http://gerrit.cloudera.org:8080/24787 Reviewed-by: Impala Public Jenkins <[email protected]> Tested-by: Impala Public Jenkins <[email protected]> --- A java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/ImpalaRelMdAllPredicates.java A java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/ImpalaRelMdExpressionLineage.java A java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/ImpalaRelMdNodeTypes.java A java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/ImpalaRelMdTableReferences.java M java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/ImpalaRelMetadataProvider.java M java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java M testdata/workloads/functional-planner/queries/PlannerTest/tpcds_cte/tpcds-q75.test 7 files changed, 2,856 insertions(+), 2,315 deletions(-) Approvals: Impala Public Jenkins: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/24787 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic32d11cd82e2484944b6d03d5fb56900e8e1b7a4 Gerrit-Change-Number: 24787 Gerrit-PatchSet: 5 Gerrit-Owner: Stamatis Zampetakis <[email protected]> Gerrit-Reviewer: Aleksandr Efimov <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Michael Smith <[email protected]> Gerrit-Reviewer: Stamatis Zampetakis <[email protected]>
