You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Hive QA (Jira)" <ji...@apache.org> on 2019/11/22 11:07:00 UTC

[jira] [Commented] (HIVE-22525) Refactor HiveOpConverter

    [ https://issues.apache.org/jira/browse/HIVE-22525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16980066#comment-16980066 ] 

Hive QA commented on HIVE-22525:
--------------------------------

| (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}  9m 58s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 11s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 46s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  4m 16s{color} | {color:blue} ql in master has 1539 extant Findbugs warnings. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m  7s{color} | {color:green} master passed {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 35s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 10s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m 10s{color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} checkstyle {color} | {color:red}  0m 44s{color} | {color:red} ql: The patch generated 10 new + 179 unchanged - 11 fixed = 189 total (was 190) {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 31s{color} | {color:red} ql generated 3 new + 1536 unchanged - 3 fixed = 1539 total (was 1539) {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m  5s{color} | {color:green} the patch passed {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 16s{color} | {color:green} The patch does not generate ASF License warnings. {color} |
| {color:black}{color} | {color:black} {color} | {color:black} 27m 18s{color} | {color:black} {color} |
\\
\\
|| Reason || Tests ||
| FindBugs | module:ql |
|  |  Boxed value is unboxed and then immediately reboxed in org.apache.hadoop.hive.ql.optimizer.calcite.translator.opconventer.HiveGBOpConvUtil.getGBInfo(HiveAggregate, HiveOpConverter$OpAttr, HiveConf)  At HiveGBOpConvUtil.java:then immediately reboxed in org.apache.hadoop.hive.ql.optimizer.calcite.translator.opconventer.HiveGBOpConvUtil.getGBInfo(HiveAggregate, HiveOpConverter$OpAttr, HiveConf)  At HiveGBOpConvUtil.java:[line 251] |
|  |  Dead store to distinctPositions in org.apache.hadoop.hive.ql.optimizer.calcite.translator.opconventer.HiveGBOpConvUtil.genReduceSideGB1NoMapGB(HiveOpConverter$OpAttr, HiveGBOpConvUtil$GBInfo, GroupByDesc$Mode)  At HiveGBOpConvUtil.java:org.apache.hadoop.hive.ql.optimizer.calcite.translator.opconventer.HiveGBOpConvUtil.genReduceSideGB1NoMapGB(HiveOpConverter$OpAttr, HiveGBOpConvUtil$GBInfo, GroupByDesc$Mode)  At HiveGBOpConvUtil.java:[line 1026] |
|  |  org.apache.hadoop.hive.ql.optimizer.calcite.translator.opconventer.HiveGBOpConvUtil.genReduceSideGB1NoMapGB(HiveOpConverter$OpAttr, HiveGBOpConvUtil$GBInfo, GroupByDesc$Mode) makes inefficient use of keySet iterator instead of entrySet iterator  At HiveGBOpConvUtil.java:use of keySet iterator instead of entrySet iterator  At HiveGBOpConvUtil.java:[line 1063] |
\\
\\
|| 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-19544/dev-support/hive-personality.sh |
| git revision | master / afd4d60 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.1 |
| checkstyle | http://104.198.109.242/logs//PreCommit-HIVE-Build-19544/yetus/diff-checkstyle-ql.txt |
| findbugs | http://104.198.109.242/logs//PreCommit-HIVE-Build-19544/yetus/new-findbugs-ql.html |
| modules | C: ql U: ql |
| Console output | http://104.198.109.242/logs//PreCommit-HIVE-Build-19544/yetus.txt |
| Powered by | Apache Yetus    http://yetus.apache.org |


This message was automatically generated.



> Refactor HiveOpConverter
> ------------------------
>
>                 Key: HIVE-22525
>                 URL: https://issues.apache.org/jira/browse/HIVE-22525
>             Project: Hive
>          Issue Type: Improvement
>          Components: Hive
>            Reporter: Miklos Gergely
>            Assignee: Miklos Gergely
>            Priority: Major
>             Fix For: 4.0.0
>
>         Attachments: HIVE-22525.01.patch
>
>
> HiveOpConverter is on it's way to become a monster class. It is already ~1300 lines long, and expected to grow. It should be refactored, cut into multiple classes in a reasonable way. It is a natural way to do this is to create separate visitor classes for the different RelNodes, which are already handled in different functions within HiveOpConverter. That way HiveOpConverter can be the dispatcher among those visitor classes, while each of them are handling some specific work, potentially requesting sub nodes to be dispatched by HiveOpConverter. The functions used by multiple visitors should be put into some utility class.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)