[ https://issues.apache.org/jira/browse/HIVE-17342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17597947#comment-17597947 ]
Aman Sinha commented on HIVE-17342: ----------------------------------- A slightly different example shows the limit 0 optimization does not get applied: create table t1 (a1 int, b1 int); explain cbo select y from (select a1 y from t1 where b1 > 10) q WHERE 1=0; +----------------------------------------------------+ | Explain | +----------------------------------------------------+ | CBO PLAN: | | HiveProject(y=[$0]) | | HiveSortLimit(fetch=[0]) | | HiveProject(a1=[$0], b1=[$1]) | | HiveFilter(condition=[>($1, 10)]) | | HiveTableScan(table=[[db1, t1]], table:alias=[t1]) | | | {noformat} > Where condition with 1=0 should be treated similar to limit 0 > ------------------------------------------------------------- > > Key: HIVE-17342 > URL: https://issues.apache.org/jira/browse/HIVE-17342 > Project: Hive > Issue Type: Improvement > Reporter: Rajesh Balamohan > Assignee: Krisztian Kasa > Priority: Minor > > In some cases, queries may get executed with where condition mentioning to > "1=0" to get schema. E.g > {noformat} > SELECT * FROM (select avg(d_year) as y from date_dim where d_year>1999) q > WHERE 1=0 > {noformat} > Currently hive executes the query; it would be good to consider this similar > to "limit 0" which does not execute the query. > {code} > hive> explain SELECT * FROM (select avg(d_year) as y from date_dim where > d_year>1999) q WHERE 1=0; > OK > Plan optimized by CBO. > Vertex dependency in root stage > Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE) > Stage-0 > Fetch Operator > limit:-1 > Stage-1 > Reducer 2 vectorized, llap > File Output Operator [FS_13] > Group By Operator [GBY_12] (rows=1 width=76) > Output:["_col0"],aggregations:["avg(VALUE._col0)"] > <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized, llap > PARTITION_ONLY_SHUFFLE [RS_11] > Group By Operator [GBY_10] (rows=1 width=76) > Output:["_col0"],aggregations:["avg(d_year)"] > Filter Operator [FIL_9] (rows=1 width=0) > predicate:false > TableScan [TS_0] (rows=1 width=0) > > default@date_dim,date_dim,Tbl:PARTIAL,Col:NONE,Output:["d_year"] > {code} > It does generate 0 splits, but does send a DAG plan to the AM and receive 0 > rows as output. -- This message was sent by Atlassian Jira (v8.20.10#820010)