You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2022/10/21 07:21:01 UTC

[jira] [Updated] (HIVE-26559) Skip unnecessary get all partition operations when where condition with 1=0 in CBO.

     [ https://issues.apache.org/jira/browse/HIVE-26559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stamatis Zampetakis updated HIVE-26559:
---------------------------------------
    Fix Version/s:     (was: All Versions)

I cleared the fixVersion field since this ticket is still open. Please review this ticket and if the fix is already committed to a specific version please set the version accordingly and mark the ticket as RESOLVED.

According to the [JIRA guidelines|https://cwiki.apache.org/confluence/display/Hive/HowToContribute] the fixVersion should be set only when the issue is resolved/closed.

> Skip unnecessary get all partition operations when where condition with 1=0 in CBO.
> -----------------------------------------------------------------------------------
>
>                 Key: HIVE-26559
>                 URL: https://issues.apache.org/jira/browse/HIVE-26559
>             Project: Hive
>          Issue Type: Improvement
>          Components: CBO
>    Affects Versions: All Versions
>            Reporter: shuaiqi.guo
>            Assignee: shuaiqi.guo
>            Priority: Major
>         Attachments: HIVE-26559.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> In some cases, queries may get executed with where condition mentioning to "1=0" to get schema. E.g
> {noformat}
> SELECT
>   *
> FROM
>   table_with_millions_of_partitions
> WHERE
>   1=0
> {noformat}
> In actual production, it likes:
> {noformat}
> SELECT
>   *
> FROM
>   table_with_millions_of_partitions
> WHERE
>   partition_col1 = value1
>   and partition_col2 = value2
>   and if(some conditions, true, false)
> {noformat}
>  
> When the cbo optimizer optimizes the execution plan of this query, the cbo optimizer will get all the partitions of table_with_millions_of_partitions. This seems useless and causes hiveserver to fail when the number of partitions is very high.
>  
> Use this patch to skip unnecessary get all partition operation when pruneNode is always false.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)