Stamatis Zampetakis has uploaded this change for review. ( 
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 returing the appropriate metadata when 
encountering ImpalaCTEConsumer allowing further rewrites to trigger properly 
and explore the entire search space.

Change-Id: Ic32d11cd82e2484944b6d03d5fb56900e8e1b7a4
---
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,855 insertions(+), 2,315 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/87/24787/1
--
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: newchange
Gerrit-Change-Id: Ic32d11cd82e2484944b6d03d5fb56900e8e1b7a4
Gerrit-Change-Number: 24787
Gerrit-PatchSet: 1
Gerrit-Owner: Stamatis Zampetakis <[email protected]>

Reply via email to