[ https://issues.apache.org/jira/browse/HIVE-17503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jesus Camacho Rodriguez resolved HIVE-17503. -------------------------------------------- Resolution: Fixed Fix Version/s: 4.0.0 Included in HIVE-20718. > CBO: Add "Explain CBO" to print Calcite trees > --------------------------------------------- > > Key: HIVE-17503 > URL: https://issues.apache.org/jira/browse/HIVE-17503 > Project: Hive > Issue Type: Improvement > Components: CBO > Affects Versions: 3.0.0 > Reporter: Gopal V > Assignee: Jesus Camacho Rodriguez > Priority: Major > Fix For: 4.0.0 > > > The calcite tree is only logged at debug level in Hive right now, which is > inconvenient to debug the CBO issues with selectivity and join rotations. > The Calcite plans, before being sent to the rest of the optimizers end up > looking like > {code} > HiveProject(s_store_name=[$0], s_company_id=[$1], s_street_number=[$2], > s_street_name=[$3], s_street_type=[$4], s_suite_number=[$5], s_city=[$6], > s_county=[$7], s_state=[$8], s_zip=[$9], 30days=[$10], 3160days=[$11], > 6190days=[$12], 91120days=[$13], 120days=[$14]) > HiveAggregate(group=[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}], agg#0=[sum($10)], > agg#1=[sum($11)], agg#2=[sum($12)], agg#3=[sum($13)], agg#4=[sum($14)]) > HiveProject($f0=[$14], $f1=[$15], $f2=[$16], $f3=[$17], $f4=[$18], > $f5=[$19], $f6=[$20], $f7=[$21], $f8=[$22], $f9=[$23], $f10=[CASE(<=(-($8, > $4), CAST(30):BIGINT), 1, 0)], $f11=[CASE(AND(>(-($8, $4), CAST(30):BIGINT), > <=(-($8, $4), CAST(60):BIGINT)), 1, 0)], $f12=[CASE(AND(>(-($8, $4), > CAST(60):BIGINT), <=(-($8, $4), CAST(90):BIGINT)), 1, 0)], > $f13=[CASE(AND(>(-($8, $4), CAST(90):BIGINT), <=(-($8, $4), > CAST(120):BIGINT)), 1, 0)], $f14=[CASE(>(-($8, $4), CAST(120):BIGINT), 1, 0)]) > HiveJoin(condition=[=($2, $13)], joinType=[inner], algorithm=[none], > cost=[not available]) > HiveJoin(condition=[=($4, $12)], joinType=[inner], > algorithm=[none], cost=[not available]) > HiveJoin(condition=[AND(=($0, $5), =($1, $6), =($3, $7))], > joinType=[inner], algorithm=[none], cost=[not available]) > HiveProject(ss_item_sk=[$1], ss_customer_sk=[$2], > ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22]) > HiveFilter(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), > IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($22))]) > > HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.store_sales]], > table:alias=[store_sales]) > HiveJoin(condition=[=($3, $4)], joinType=[inner], > algorithm=[none], cost=[not available]) > HiveProject(sr_item_sk=[$1], sr_customer_sk=[$2], > sr_ticket_number=[$8], sr_returned_date_sk=[$19]) > HiveFilter(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), > IS NOT NULL($8), IS NOT NULL($19))]) > > HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.store_returns]], > table:alias=[store_returns]) > HiveProject(d_date_sk=[$0], d_year=[CAST(2000):INTEGER], > d_moy=[CAST(9):INTEGER]) > HiveFilter(condition=[AND(=($6, 2000), =($8, 9), IS NOT > NULL($0))]) > > HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.date_dim]], > table:alias=[d2]) > HiveProject(d_date_sk=[$0]) > HiveFilter(condition=[IS NOT NULL($0)]) > > HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.date_dim]], > table:alias=[d1]) > HiveProject(s_store_sk=[$0], s_store_name=[$5], s_company_id=[$16], > s_street_number=[$18], s_street_name=[$19], s_street_type=[$20], > s_suite_number=[$21], s_city=[$22], s_county=[$23], s_state=[$24], > s_zip=[$25]) > HiveFilter(condition=[IS NOT NULL($0)]) > HiveTableScan(table=[[tpcds_bin_partitioned_orc_10000.store]], > table:alias=[store]) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)