[ https://issues.apache.org/jira/browse/HIVE-22808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17029633#comment-17029633 ]
Hive QA commented on HIVE-22808: -------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | || || || || {color:brown} master Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 10m 56s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 10s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 45s{color} | {color:green} master passed {color} | | {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 4m 11s{color} | {color:blue} ql in master has 1533 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 0s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 13s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 13s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 0m 49s{color} | {color:red} ql: The patch generated 3 new + 0 unchanged - 2 fixed = 3 total (was 2) {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 38s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 3s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 17s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 28m 2s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Optional Tests | asflicense javac javadoc findbugs checkstyle compile | | uname | Linux hiveptest-server-upstream 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) x86_64 GNU/Linux | | Build tool | maven | | Personality | /data/hiveptest/working/yetus_PreCommit-HIVE-Build-20453/dev-support/hive-personality.sh | | git revision | master / c0d5dce | | Default Java | 1.8.0_111 | | findbugs | v3.0.1 | | checkstyle | http://104.198.109.242/logs//PreCommit-HIVE-Build-20453/yetus/diff-checkstyle-ql.txt | | modules | C: ql U: ql | | Console output | http://104.198.109.242/logs//PreCommit-HIVE-Build-20453/yetus.txt | | Powered by | Apache Yetus http://yetus.apache.org | This message was automatically generated. > HiveRelFieldTrimmer does not handle HiveTableFunctionScan > --------------------------------------------------------- > > Key: HIVE-22808 > URL: https://issues.apache.org/jira/browse/HIVE-22808 > Project: Hive > Issue Type: Bug > Components: Query Planning > Reporter: Krisztian Kasa > Assignee: Krisztian Kasa > Priority: Major > Attachments: HIVE-22808.1.patch, HIVE-22808.2.patch, > HIVE-22808.2.patch > > > *Repro* > {code:java} > CREATE TABLE table_16 ( > timestamp_col_19 timestamp, > timestamp_col_29 timestamp, > int_col_27 int, > int_col_39 int, > boolean_col_18 boolean, > varchar0045_col_23 varchar(45) > ); > CREATE TABLE table_7 ( > int_col_10 int, > bigint_col_3 bigint > ); > CREATE TABLE table_10 ( > boolean_col_8 boolean, > boolean_col_16 boolean, > timestamp_col_5 timestamp, > timestamp_col_15 timestamp, > timestamp_col_30 timestamp, > decimal3825_col_26 decimal(38, 25), > smallint_col_9 smallint, > int_col_18 int > ); > explain cbo > SELECT > DISTINCT COALESCE(a4.timestamp_col_15, IF(a4.boolean_col_16, > a4.timestamp_col_30, a4.timestamp_col_5)) AS timestamp_col > FROM table_7 a3 > RIGHT JOIN table_10 a4 > WHERE (a3.bigint_col_3) >= (a4.int_col_18) > INTERSECT ALL > SELECT > COALESCE(LEAST( > COALESCE(a1.timestamp_col_19, CAST('2010-03-29 00:00:00' AS > TIMESTAMP)), > COALESCE(a1.timestamp_col_29, CAST('2014-08-16 00:00:00' AS > TIMESTAMP)) > ), > GREATEST(COALESCE(a1.timestamp_col_19, CAST('2013-07-01 00:00:00' AS > TIMESTAMP)), > COALESCE(a1.timestamp_col_29, CAST('2028-06-18 00:00:00' AS > TIMESTAMP))) > ) AS timestamp_col > FROM table_16 a1 > GROUP BY COALESCE(LEAST( > COALESCE(a1.timestamp_col_19, CAST('2010-03-29 00:00:00' AS > TIMESTAMP)), > COALESCE(a1.timestamp_col_29, CAST('2014-08-16 00:00:00' AS > TIMESTAMP)) > ), > GREATEST( > COALESCE(a1.timestamp_col_19, CAST('2013-07-01 00:00:00' AS > TIMESTAMP)), > COALESCE(a1.timestamp_col_29, CAST('2028-06-18 00:00:00' AS > TIMESTAMP))) > ); > {code} > CBO Plan contains unnecessary columns or all columns from a table in > projections like: > {code:java} > HiveProject(int_col_10=[$0], bigint_col_3=[$1], > BLOCK__OFFSET__INSIDE__FILE=[$2], INPUT__FILE__NAME=[$3], > CAST=[CAST($4):RecordType(BIGINT writeid, INTEGER bucketid, BIGINT rowid)]) > {code} > *Cause* > The plan contains a HiveTableFunctionScan operator: > {code:java} > HiveTableFunctionScan(invocation=[replicate_rows($0, $1)], > rowType=[RecordType(BIGINT $f0, TIMESTAMP(9) $f1)]) > {code} > HiveTableFunctionScan is not handled by HiveRelFieldTrimmer nor > RelFieldTrimmer which suppose to remove unused columns in the > CalcitePlanner.applyPreJoinOrderingTransforms(...) phase. The whole subtree > rooted from HiveTableFunctionScan is ignored. > Whole plan: > {code:java} > CBO PLAN: > HiveProject($f0=[$1]) > HiveTableFunctionScan(invocation=[replicate_rows($0, $1)], > rowType=[RecordType(BIGINT $f0, TIMESTAMP(9) $f1)]) > HiveProject($f0=[$2], $f1=[$0]) > HiveFilter(condition=[=($1, 2)]) > HiveAggregate(group=[{0}], agg#0=[count($1)], agg#1=[min($1)]) > HiveProject($f0=[$0], $f1=[$1]) > HiveUnion(all=[true]) > HiveProject($f0=[$0], $f1=[$1]) > HiveAggregate(group=[{0}], agg#0=[count()]) > HiveProject($f0=[$0]) > HiveAggregate(group=[{0}]) > HiveProject($f0=[CASE(IS NOT NULL($7), $7, if($5, $8, > $6))]) > HiveJoin(condition=[>=($1, $13)], joinType=[inner], > algorithm=[none], cost=[not available]) > HiveProject(int_col_10=[$0], bigint_col_3=[$1], > BLOCK__OFFSET__INSIDE__FILE=[$2], INPUT__FILE__NAME=[$3], > CAST=[CAST($4):RecordType(BIGINT writeid, INTEGER bucketid, BIGINT rowid)]) > HiveFilter(condition=[IS NOT NULL($1)]) > HiveTableScan(table=[[default, table_7]], > table:alias=[a3]) > HiveProject(boolean_col_16=[$0], > timestamp_col_5=[$1], timestamp_col_15=[$2], timestamp_col_30=[$3], > int_col_18=[$4], BLOCK__OFFSET__INSIDE__FILE=[$5], INPUT__FILE__NAME=[$6], > ROW__ID=[$7], CAST=[CAST($4):BIGINT]) > HiveFilter(condition=[IS NOT > NULL(CAST($4):BIGINT)]) > HiveTableScan(table=[[default, table_10]], > table:alias=[a4]) > HiveProject($f0=[$0], $f1=[$1]) > HiveAggregate(group=[{0}], agg#0=[count()]) > HiveProject($f0=[$0]) > HiveAggregate(group=[{0}]) > HiveProject($f0=[CASE(IS NOT NULL(least(CASE(IS NOT > NULL($0), $0, 2010-03-29 00:00:00:TIMESTAMP(9)), CASE(IS NOT NULL($1), $1, > 2014-08-16 00:00:00:TIMESTAMP(9)))), least(CASE(IS NOT NULL($0), $0, > 2010-03-29 00:00:00:TIMESTAMP(9)), CASE(IS NOT NULL($1), $1, 2014-08-16 > 00:00:00:TIMESTAMP(9))), greatest(CASE(IS NOT NULL($0), $0, 2013-07-01 > 00:00:00:TIMESTAMP(9)), CASE(IS NOT NULL($1), $1, 2028-06-18 > 00:00:00:TIMESTAMP(9))))]) > HiveTableScan(table=[[default, table_16]], > table:alias=[a1]) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)