Description
with HIVE-12017 in place, a few queries generate left sem-joins without a key.
This is an invalid plan and can be produced by doing.
explain logical select count(1) from store_sales where ss_sold_date_sk in (select d_date_sk from date_dim where d_date_sk = 1); LOGICAL PLAN: $hdt$_0:$hdt$_0:$hdt$_0:store_sales TableScan (TS_0) alias: store_sales filterExpr: (ss_sold_date_sk = 1) (type: boolean) Filter Operator (FIL_20) predicate: (ss_sold_date_sk = 1) (type: boolean) Select Operator (SEL_2) Reduce Output Operator (RS_9) sort order: Join Operator (JOIN_11) condition map: Left Semi Join 0 to 1 keys: 0 1 Group By Operator (GBY_14) aggregations: count(1) mode: hash
without CBO
sq_1:date_dim TableScan (TS_1) alias: date_dim filterExpr: ((1) IN (RS[6]) and (d_date_sk = 1)) (type: boolean) Filter Operator (FIL_21) predicate: ((1) IN (RS[6]) and (d_date_sk = 1)) (type: boolean) Select Operator (SEL_3) expressions: 1 (type: int) outputColumnNames: _col0 Group By Operator (GBY_5) keys: _col0 (type: int) mode: hash outputColumnNames: _col0 Reduce Output Operator (RS_8) key expressions: _col0 (type: int) sort order: + Map-reduce partition columns: _col0 (type: int) Join Operator (JOIN_9) condition map: Left Semi Join 0 to 1 keys: 0 ss_sold_date_sk (type: int) 1 _col0 (type: int) Group By Operator (GBY_12) aggregations: count(1) mode: hash
Attachments
Attachments
Issue Links
- is depended upon by
-
HIVE-13164 Predicate pushdown may cause cross-product in left semi join
- Resolved
- is related to
-
HIVE-12017 Do not disable CBO by default when number of joins in a query is equal or less than 1
- Closed
- relates to
-
HIVE-13082 Enable constant propagation optimization in query with left semi join
- Closed