[ 
https://issues.apache.org/jira/browse/IMPALA-13767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18019008#comment-18019008
 ] 

ASF subversion and git services commented on IMPALA-13767:
----------------------------------------------------------

Commit 1ff4e1b68298563bbcc2729066b11e0028254eb0 in impala's branch 
refs/heads/master from Fang-Yu Rao
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=1ff4e1b68 ]

IMPALA-13767: Do not treat CTEs as names of actual tables

This patch implements an additional check when collecting table names
that are used in the given query. Specifically, for a table name that
is not fully qualified, we make sure the derived fully qualified table
name is not a common table expression (CTE) of a SqlWithItem in a
WITH clause since such CTE's are not actual tables.

Testing:
 - Added a test in test_ranger.py to verify the issue is fixed.

Change-Id: I3f51af42d64cdcff3c26ad5a96c7f53ebef431b3
Reviewed-on: http://gerrit.cloudera.org:8080/23209
Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Reviewed-by: Fang-Yu Rao <fangyu....@cloudera.com>


> Common table expression (CTE) in a WITH clause should not be treated as a 
> table by TableVisitor for the Calcite planner
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: IMPALA-13767
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13767
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Frontend
>            Reporter: Fang-Yu Rao
>            Assignee: Fang-Yu Rao
>            Priority: Major
>
> Currently for the Calcite planner in Impala, a temporary table associated 
> with a WITH clause is treated as a table by {{TableVisitor}} in 
> [CalciteMetadataHandler.java|https://github.com/apache/impala/blob/master/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteMetadataHandler.java].
>  
> For instance, after the execution of 
> "{{{}parsedNode.accept(tableVisitor){}}}" in CalciteMetadataHandler.java, 
> '{{{}tableVisitor.tableNames_{}}}' evaluates to a {{HashSet}} consisting of 
> the table names "{{{}default.t{}}}" and "{{{}functional.alltypestiny{}}}" for 
> the following query. It would be better if "{{{}default.t{}}}" is not 
> considered as the name of a table involved in the query when we are visiting 
> the {{SqlNode}}.
> {code:java}
> with t as (select * from functional.alltypestiny) select * from t;
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to