Hello Aman Sinha, Riza Suminto, Joe McDonnell, Michael Smith, Impala Public 
Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/22883

to look at the new patch set (#7).

Change subject: IMPALA-13982: Support views for Calcite planner in Impala
......................................................................

IMPALA-13982: Support views for Calcite planner in Impala

This patch adds the support for regular views to the Calcite planner
via adding a ViewTableMacro for each regular view in the given query
when populating the Calcite schema. This is also how regular views are
supported in PlannerTest#testView() at
https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
in Apache Calcite. Specifically, each regular view is added in
CalciteAssert#addSchema() via instantiating a ViewTableMacro so that it
could be expanded and validated later on.

To be able to expand the view in ViewTableMacro, we need a newer
version of protobuf-java, e.g., 3.21.12. Currently 2.5.0 is
transitively pulled in by dependencies like
org.apache.hadoop:hadoop-hdfs. To address this issue, based on the
suggestion from Stamatis Zampetakis, we exclude avatica-core from the
artifacts that are pulled in by calcite-core, and explicitly add
avatica as a dependency, which already shades the protobuf-java it
requires to expand a view.

The patch supports the following cases, where functional.alltypes_view
is a regular view defined as "SELECT * FROM functional.alltypes".
1. select id from functional.alltypes_view.
2. select alltypes_view.id from functional.alltypes_view.
3. select functional.alltypes_view.id from functional.alltypes_view.

Joining a regular view with an HDFS table like the following is also
supported.

  select alltypestiny.id
  from functional.alltypes_view, functional.alltypestiny

Change-Id: I600aae816727ae942fb221fae84c2aac63ae1893
---
M java/calcite-planner/pom.xml
A 
java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/ImpalaViewTableMacro.java
M 
java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteAnalysisDriver.java
M 
java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteMetadataHandler.java
M 
java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteRelNodeConverter.java
5 files changed, 154 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/83/22883/7
--
To view, visit http://gerrit.cloudera.org:8080/22883
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I600aae816727ae942fb221fae84c2aac63ae1893
Gerrit-Change-Number: 22883
Gerrit-PatchSet: 7
Gerrit-Owner: Fang-Yu Rao <[email protected]>
Gerrit-Reviewer: Aman Sinha <[email protected]>
Gerrit-Reviewer: Fang-Yu Rao <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>
Gerrit-Reviewer: Riza Suminto <[email protected]>

Reply via email to