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/09/28 08:36:00 UTC
[jira] [Commented] (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:comment-tabpanel&focusedCommentId=17610434#comment-17610434 ]
Stamatis Zampetakis commented on HIVE-26559:
--------------------------------------------
This may be resolved by the proposed fix in HIVE-26524. [~shuaiqi.guo] can you have a look if that solves your problem.
> 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
> Fix For: All Versions
>
> 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)