Riza Suminto has posted comments on this change. ( http://gerrit.cloudera.org:8080/21483 )
Change subject: IMPALA-12800: Use HashMap for ExprSubstitutionMap lookups ...................................................................... Patch Set 3: (5 comments) http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java File fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java: http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java@428 PS2, Line 428: Objects.hash(super.localHash(), op_); > Why? Those aren't included in localEquals. I recently add those fields in IMPALA-8042 (https://gerrit.cloudera.org/c/21377/). I should include them into localEquals(), but I forgot. The same also for CompoundPredicate. http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/CaseExpr.java File fe/src/main/java/org/apache/impala/analysis/CaseExpr.java: http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/CaseExpr.java@204 PS2, Line 204: isDecode() > No, needs to mirror localEquals. Ack http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/CompoundPredicate.java File fe/src/main/java/org/apache/impala/analysis/CompoundPredicate.java: http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/CompoundPredicate.java@123 PS2, Line 123: Objects.hash(super.localHash(), op_); > No, needs to mirror localEquals. I should include them into localEquals(), for IMPALA-8042, but I forgot. http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/OrderByElement.java File fe/src/main/java/org/apache/impala/analysis/OrderByElement.java: http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/OrderByElement.java@105 PS2, Line 105: public int hashCode() { : return Objects.hash(getClass(), nullsFirstParam_, expr_, isAsc_); : } > It's meant to capture all the objects required to be equal in "equals". Ack http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/SlotRef.java File fe/src/main/java/org/apache/impala/analysis/SlotRef.java: http://gerrit.cloudera.org:8080/#/c/21483/2/fe/src/main/java/org/apache/impala/analysis/SlotRef.java@358 PS2, Line 358: if (label_ != null) return label_.toLowerCase().hashCode(); : return super.localHash(); > Hmm, I'm not sure. As described in https://docs.oracle.com/javase%2F8%2Fdoc OK. I see that label_ is derived from rawPath_ in one of this class constructor. So the hashing over label_ should cover for rawPath_ as well. -- To view, visit http://gerrit.cloudera.org:8080/21483 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic538a82c69ee1dd76981fbacf95289c9d00ea9fe Gerrit-Change-Number: 21483 Gerrit-PatchSet: 3 Gerrit-Owner: Michael Smith <[email protected]> Gerrit-Reviewer: Daniel Becker <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Joe McDonnell <[email protected]> Gerrit-Reviewer: Michael Smith <[email protected]> Gerrit-Reviewer: Riza Suminto <[email protected]> Gerrit-Comment-Date: Thu, 06 Jun 2024 22:17:34 +0000 Gerrit-HasComments: Yes
