[
https://issues.apache.org/jira/browse/HIVE-29217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18028444#comment-18028444
]
Soumyakanti Das commented on HIVE-29217:
----------------------------------------
[~zabetak]
Do we know if one of them is better than the other? If CBO based
materialization is better then we could probably set it as default.
> Add configuration to choose materialization strategy for CTEs
> -------------------------------------------------------------
>
> Key: HIVE-29217
> URL: https://issues.apache.org/jira/browse/HIVE-29217
> Project: Hive
> Issue Type: Improvement
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
> Labels: pull-request-available
>
> Currently there are two ways for materializing common table expressions
> (CTEs) that are present in SQL queries.
> +SQL/AST based materialization+
> It was introduced in HIVE-11752 and relies on the syntax of SQL queries
> specifically in presence of WITH clauses. It is performed early on during the
> semantic analysis and triggers before any kind of optimization.
> +CBO based materialization+
> It was introduced in HIVE-28259 and relies on plan equivalences. It is
> performed during the cost based optimization phase and after the initial
> analysis.
> Currently the two strategies interfere with each other and in various cases
> if they are both enabled they can affect negatively the performance due to
> excessive materialization.
> Another drawback is that if a query contains a WITH clause we cannot bypass
> the AST materialization (and let the materialization decision entirely on
> CBO) so we are risking a non-optimal choice purely based on the syntax of the
> query.
> I propose adding a new configuration property for explicitly selecting
> between AST and CBO materialization allowing each materialization strategy to
> be applied independently of the other.
> In order to avoid changes in behavior and retain backward compatibility the
> default materialization strategy will use the old AST based approach.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)