[ 
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)

Reply via email to