[
https://issues.apache.org/jira/browse/HIVE-26618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17616967#comment-17616967
]
Krisztian Kasa commented on HIVE-26618:
---------------------------------------
The main responsibility of the new setting to control which operator represents
the empty result operator:
* HiveSortLimit(limit=0)
* HiveValues(tuples=[])
I'm not aware of any flag which can control this. With
{{hive.cbo.rule.exclusion.regex}} the rules {{HiveRemoveEmptySingleRules}} can
be disabled but it does not prevent creating {{HiveValues(tuples=[])}}
operators.
{{HiveSortLimit}} must be supported in both cases since it also represents
{{Order by}} without {{Limit}} and {{Limit x}} x > 0 or the combination of the
two.
> Add setting to turn on/off removing sections of a query plan known never
> produces rows
> --------------------------------------------------------------------------------------
>
> Key: HIVE-26618
> URL: https://issues.apache.org/jira/browse/HIVE-26618
> Project: Hive
> Issue Type: Improvement
> Components: CBO
> Reporter: Krisztian Kasa
> Assignee: Krisztian Kasa
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0, 4.0.0-alpha-2
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> HIVE-26524 introduced an optimization to remove sections of query plan known
> never produces rows.
> Add a setting into hive conf to turn on/off this optimization.
> When the optimization is turned off restore the legacy behavior:
> * represent empty result operator with {{HiveSortLimit}} 0
> * disable {{HiveRemoveEmptySingleRules}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)