[ https://issues.apache.org/jira/browse/HIVE-19097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16566031#comment-16566031 ]
Hive QA commented on HIVE-19097: -------------------------------- | (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:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 50s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 8m 38s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 33s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 7s{color} | {color:green} master passed {color} | | {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 0m 35s{color} | {color:blue} common in master has 64 extant Findbugs warnings. {color} | | {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 4m 21s{color} | {color:blue} ql in master has 2302 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 20s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 10s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 51s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 23s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 23s{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 12 new + 497 unchanged - 18 fixed = 509 total (was 515) {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 4m 48s{color} | {color:red} ql generated 4 new + 2298 unchanged - 4 fixed = 2302 total (was 2302) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 12s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 12s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 30m 58s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:ql | | | org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.interpretNodeAs(PrimitiveTypeInfo, ExprNodeDesc) invokes inefficient new Byte(String) constructor; use Byte.valueOf(String) instead At TypeCheckProcFactory.java:Byte(String) constructor; use Byte.valueOf(String) instead At TypeCheckProcFactory.java:[line 1259] | | | org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.interpretNodeAs(PrimitiveTypeInfo, ExprNodeDesc) invokes inefficient new Integer(String) constructor; use Integer.valueOf(String) instead At TypeCheckProcFactory.java:Integer(String) constructor; use Integer.valueOf(String) instead At TypeCheckProcFactory.java:[line 1251] | | | org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.interpretNodeAs(PrimitiveTypeInfo, ExprNodeDesc) invokes inefficient new Long(String) constructor; use Long.valueOf(String) instead At TypeCheckProcFactory.java:Long(String) constructor; use Long.valueOf(String) instead At TypeCheckProcFactory.java:[line 1253] | | | org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.interpretNodeAs(PrimitiveTypeInfo, ExprNodeDesc) invokes inefficient new Short(String) constructor; use Short.valueOf(String) instead At TypeCheckProcFactory.java:Short(String) constructor; use Short.valueOf(String) instead At TypeCheckProcFactory.java:[line 1261] | \\ \\ || 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.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux | | Build tool | maven | | Personality | /data/hiveptest/working/yetus_PreCommit-HIVE-Build-12987/dev-support/hive-personality.sh | | git revision | master / 2cabb8d | | Default Java | 1.8.0_111 | | findbugs | v3.0.0 | | checkstyle | http://104.198.109.242/logs//PreCommit-HIVE-Build-12987/yetus/diff-checkstyle-ql.txt | | findbugs | http://104.198.109.242/logs//PreCommit-HIVE-Build-12987/yetus/new-findbugs-ql.html | | modules | C: common ql U: . | | Console output | http://104.198.109.242/logs//PreCommit-HIVE-Build-12987/yetus.txt | | Powered by | Apache Yetus http://yetus.apache.org | This message was automatically generated. > related equals and in operators may cause inaccurate stats estimations > ---------------------------------------------------------------------- > > Key: HIVE-19097 > URL: https://issues.apache.org/jira/browse/HIVE-19097 > Project: Hive > Issue Type: Bug > Reporter: Zoltan Haindrich > Assignee: Zoltan Haindrich > Priority: Major > Attachments: HIVE-19097.01.patch, HIVE-19097.02.patch, > HIVE-19097.03.patch, HIVE-19097.04.patch, HIVE-19097.05.patch, > HIVE-19097.06wip01.patch, HIVE-19097.06wip02.patch, HIVE-19097.partial.patch > > > tpcds#74 is optimized in a way that for date_dim the condition contains IN > and = for the same column > {code:java} > | Map Operator Tree: | > | TableScan | > | alias: date_dim | > | filterExpr: (((d_year) IN (2001, 2002) and (d_year = > 2002) and d_date_sk is not null) or ((d_year) IN (2001, 2002) and (d_year = > 2001) and d_date_sk is not null)) (type: boolean) | > | Statistics: Num rows: 73049 Data size: 876588 Basic > stats: COMPLETE Column stats: COMPLETE | > | Filter Operator | > | predicate: ((d_year) IN (2001, 2002) and (d_year = > 2002) and d_date_sk is not null) (type: boolean) | > | Statistics: Num rows: 4 Data size: 48 Basic stats: > COMPLETE Column stats: COMPLETE | > {code} > the "real" row count will be 365 > for separate {{IN}} and {{=}} the estimation is very good; but if both are > present it becomes (very) underestimated. > {code:java} > set hive.query.results.cache.enabled=false; > drop table if exists t1; > drop table if exists t8; > create table t1 (a integer,b integer); > create table t8 like t1; > insert into t1 values (1,1),(2,2),(3,3),(4,4),(5,5); > insert into t8 > select * from t1 union all select * from t1 union all select * from t1 union > all select * from t1 union all > select * from t1 union all select * from t1 union all select * from t1 union > all select * from t1 > ; > analyze table t1 compute statistics for columns; > analyze table t8 compute statistics for columns; > explain analyze select sum(a) from t8 where b in (2,3) group by b; > explain analyze select sum(a) from t8 where b=2 group by b; > explain analyze select sum(a) from t1 where b in (2,3) and b=2 group by b; > explain analyze select sum(a) from t8 where b in (2,3) and b=2 group by b; > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)