IMPALA-14408: Use regular path for Calcite planner instead of CalciteJniFrontend

When the --use_calcite_planner=true option is set at the server level,
the queries will no longer go through CalciteJniFrontend. Instead, they
will go through the regular JniFrontend, which is the path that is used
when the query option for "use_calcite_planner" is set.

The CalciteJniFrontend will be removed in a later commit.

This commit also enables fallback to the original planner when an unsupported
feature exception is thrown. This needed to be added to allow the tests to run
properly. During initial database load, there are queries that access complex
columns which throws the unsupported exception.

Change-Id: I732516ca8f7ea64f73484efd67071910c9b62c8f
Reviewed-on: http://gerrit.cloudera.org:8080/23523
Reviewed-by: Steve Carlin <scarlin@cloudera.com>
Tested-by: Steve Carlin <scarlin@cloudera.com>
This commit is contained in:
Steve Carlin
2025-09-05 08:22:04 -07:00
parent 64c4abe6ed
commit a6bb0c7c45
6 changed files with 131 additions and 6 deletions

View File

@@ -278,6 +278,8 @@ DEFINE_validator(ssl_minimum_version, [](const char* flagname, const string& val
return false;
});
DEFINE_bool(use_calcite_planner, false, "By default this flag is false. If true, "
"the Calcite planner will be used to compile queries.");
DEFINE_int32(idle_session_timeout, 0, "The time, in seconds, that a session may be idle"
" for before it is closed (and all running queries cancelled) by Impala. If 0, idle"
" sessions are never expired. It can be overridden by the query option"
@@ -2018,6 +2020,7 @@ void ImpalaServer::InitializeConfigVariables() {
// Set idle_session_timeout here to let the SET command return the value of
// the command line option FLAGS_idle_session_timeout
default_query_options_.__set_idle_session_timeout(FLAGS_idle_session_timeout);
default_query_options_.__set_use_calcite_planner(FLAGS_use_calcite_planner);
// The next query options used to be set with flags. Setting them in
// default_query_options_ here in order to make default_query_options
// take precedence over the legacy flags.