[
https://issues.apache.org/jira/browse/IMPALA-14488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18059135#comment-18059135
]
ASF subversion and git services commented on IMPALA-14488:
----------------------------------------------------------
Commit 1dd2e8595c2ddb4e41e9bd6af3a2bb68142752ee in impala's branch
refs/heads/master from Steve Carlin
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=1dd2e8595 ]
IMPALA-14488: Calcite planner: Support fallback to Original planner
Introduced the query options PLANNER and FALLBACK_PLANNER which are
of type TPlannerType
The 3 options for TPlannerType are:
ORIGINAL (default) : Use the Original planner for queries.
CALCITE : Use the Calcite planner for queries.
NONE : Convenient option for setting the FALLBACK_PLANNER.
This should never be used for the PLANNER option.
The Calcite planner currently does not support DDL and other various
queries (e.g. complex types). If a known unsupported query is detected,
the original planner will be used regardless of what is chosen for
FALLBACK_PLANNER.
The fallback planner will allow for easier transition for users who
want to use the new Calcite planner without having to worry about
backward compatibility issues that the compiler doesn't support.
One example that is currently not supported (in runtime_planners.test)
is the "ignore nulls" phrase which needs to be inside the parens for
Impala, but outside the parens for the Calcite parser.
At the time of this commit, there are also various compiler exceptions
thrown for Calcite which are not yet supported. The PLANNER=CALCITE
and FALLBACK_PLANNER=ORIGINAL options are set if the
--use_calcite_planner=true server option is specified. This will allow
easier transitioning to the Calcite planner because the user will be
assured that even if there is a compilation failure in Calcite,
their existing query will still run with the original planner.
Change-Id: Id1fdc5ef92fff84e89af0e19c4246cc15e2ea823
Reviewed-on: http://gerrit.cloudera.org:8080/23900
Tested-by: Impala Public Jenkins <[email protected]>
Reviewed-by: Michael Smith <[email protected]>
> Calcite planner: support fallback to Original planner
> -----------------------------------------------------
>
> Key: IMPALA-14488
> URL: https://issues.apache.org/jira/browse/IMPALA-14488
> Project: IMPALA
> Issue Type: Sub-task
> Reporter: Steve Carlin
> Assignee: Steve Carlin
> Priority: Major
> Fix For: Impala 5.0.0
>
>
> If a query fails in Calcite, we need the ability to fallback to the original
> planner.
> We need a query option for the fallback algorithm because there are at least
> 3 different ways we need to fallback
> 1) nonquery exceptions only. Calcite currently only supports queries (no
> DDL, DML, or other non-select statements). Running with this option will
> throw an exception for every query that Calcite does not support
> 2) Unsupported and nonquery exceptions: Similar to 1), but if there is a
> failure that we know explicitly fails in Calcite, an Unsupported Exception is
> thrown and we fallback to the original planner. This option is useful on data
> load because of some of the data loading uses COMPUTE STATS and under the
> covers, it runs stats on complex query columns which we do not want to fail.
> 1) All exceptions: Any exception from the Calcite planner will result in a
> retry with the original planner. This is useful in production scenarios
> where we don't want a Calcite bug to be the cause of a failed query. Normal
> jenkins test runs that run with the Calcite planner will most likely use this
> option.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]