[ https://issues.apache.org/jira/browse/IMPALA-13982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Fang-Yu Rao updated IMPALA-13982: --------------------------------- Description: We should be able to support views for the Calcite planner in Impala without a lot of code changes to the current implementation. The ideas is to add a {{TableVisitor}} to traverse the AST right before we analyze the AST using Calcite's own {{SqlValidator}} in [https://github.com/apache/impala/blob/master/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteAnalysisDriver.java] and replace nodes representing views with the underlying definitions of views. We also have to take authorization into consideration. Recall that for a view created by a non-superuser, Impala further requires the requesting user to have the privileges on the underlying tables referenced by the view. Refer to [IMPALA-10122 (Part 2): Allow accessing views created by non-superusers|https://github.com/apache/impala/commit/607dc1f170fb8cc013d8ec33fccee59ac4352fe4] for more details. This implies that given an AST after the node replacement mentioned above, we need to distinguish a {{SqlSelect}} node derived from a view from a {{SqlSelect}} that was not derived from a view. was: We should be able to support views for the Calcite planner in Impala without a lot of code changes to the current implementation. The ideas is to add a {{TableVisitor}} to traverse the AST right before we analyze the AST using Calcite's own {{SqlValidator}} in [https://github.com/apache/impala/blob/master/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteAnalysisDriver.java] and replace nodes representing views with the underlying definitions of views. We also have to take authorization into consideration. Recall that for a view created by a non-superuser, Impala further requires the requesting user to have the privileges on the underlying tables referenced by the view. Refer to [IMPALA-10122 (Part 2): Allow accessing views created by non-superusers|https://github.com/apache/impala/commit/607dc1f170fb8cc013d8ec33fccee59ac4352fe4] for more details. This implies that given an AST after the node replacement mentioned above, we need to distinguish a {{SqlSelect}} node derived from a view from a {{SqlSelect}} not not derived from a view. > Support views for the Calcite planner in Impala > ----------------------------------------------- > > Key: IMPALA-13982 > URL: https://issues.apache.org/jira/browse/IMPALA-13982 > Project: IMPALA > Issue Type: Sub-task > Reporter: Fang-Yu Rao > Assignee: Fang-Yu Rao > Priority: Major > > We should be able to support views for the Calcite planner in Impala without > a lot of code changes to the current implementation. > The ideas is to add a {{TableVisitor}} to traverse the AST right before we > analyze the AST using Calcite's own {{SqlValidator}} in > [https://github.com/apache/impala/blob/master/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteAnalysisDriver.java] > and replace nodes representing views with the underlying definitions of > views. > We also have to take authorization into consideration. Recall that for a view > created by a non-superuser, Impala further requires the requesting user to > have the privileges on the underlying tables referenced by the view. Refer to > [IMPALA-10122 (Part 2): Allow accessing views created by > non-superusers|https://github.com/apache/impala/commit/607dc1f170fb8cc013d8ec33fccee59ac4352fe4] > for more details. This implies that given an AST after the node replacement > mentioned above, we need to distinguish a {{SqlSelect}} node derived from a > view from a {{SqlSelect}} that was not derived from a view. -- 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