[ https://issues.apache.org/jira/browse/HIVE-26524?focusedWorklogId=813808&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-813808 ]
ASF GitHub Bot logged work on HIVE-26524: ----------------------------------------- Author: ASF GitHub Bot Created on: 30/Sep/22 22:56 Start Date: 30/Sep/22 22:56 Worklog Time Spent: 10m Work Description: difin commented on code in PR #3588: URL: https://github.com/apache/hive/pull/3588#discussion_r984991177 ########## ql/src/test/results/clientpositive/llap/subquery_ALL.q.out: ########## @@ -413,8 +413,7 @@ POSTHOOK: Input: default@part POSTHOOK: Input: default@part_null_n0 #### A masked pattern was here #### 26 -Warning: Shuffle Join MERGEJOIN[37][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product -Warning: Shuffle Join MERGEJOIN[38][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 4' is a cross product +Warning: Shuffle Join MERGEJOIN[22][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product Review Comment: Will these changes work for insert statements that produce zero records also, or only for select queries? I am asking because there is a ticket https://issues.apache.org/jira/browse/HIVE-24466 - "insert queries should not launch job when condition in the query would output 0 rows", I was wondering it these changes are a fix for that ticket too. Issue Time Tracking ------------------- Worklog Id: (was: 813808) Time Spent: 5h 20m (was: 5h 10m) > Use Calcite to remove sections of a query plan known never produces rows > ------------------------------------------------------------------------ > > Key: HIVE-26524 > URL: https://issues.apache.org/jira/browse/HIVE-26524 > Project: Hive > Issue Type: Improvement > Components: CBO > Reporter: Krisztian Kasa > Assignee: Krisztian Kasa > Priority: Major > Labels: pull-request-available > Time Spent: 5h 20m > Remaining Estimate: 0h > > Calcite has a set of rules to remove sections of a query plan known never > produces any rows. In some cases the whole plan can be removed. Such plans > are represented with a single {{Values}} operators with no tuples. ex.: > {code:java} > select y + 1 from (select a1 y, b1 z from t1 where b1 > 10) q WHERE 1=0 > {code} > {code:java} > HiveValues(tuples=[[]]) > {code} > Other cases when plan has outer join or set operators some branches can be > replaced with empty values moving forward in some cases the join/set operator > can be removed > {code:java} > select a2, b2 from t2 where 1=0 > union > select a1, b1 from t1 > {code} > {code:java} > HiveAggregate(group=[{0, 1}]) > HiveTableScan(table=[[default, t1]], table:alias=[t1]) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)