[ https://issues.apache.org/jira/browse/IMPALA-11811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17654164#comment-17654164 ]
ASF subversion and git services commented on IMPALA-11811: ---------------------------------------------------------- Commit 11068d9aebd83be59773f2b1eaa5682053d4428b in impala's branch refs/heads/master from Andrew Sherman [ https://gitbox.apache.org/repos/asf?p=impala.git;h=11068d9ae ] IMPALA-11811: Avoid storing unregistered predicate objects in a Map Within the extractIcebergConjuncts() method we are tracking conjuncts which are identity conjuncts by storing them in a temporary Map. The conjuncts are Expr objects which have a hashCode() method based on their id_ field, which is only present when they are registered. If the id_ field is null, then the hashCode() will throw, and hence unregistered predicates cannot be stored in a Map. Some predicates produced by getBoundPredicates() are explicitly not registered. Change extractIcebergConjuncts() to track the identity conjuncts using a boolean array, which tracks the index of the identity conjuncts in conjuncts_ List. Print the name of the Class in the Expr.hashCode() error to aid future debugging. TESTING: Add a query which causes an unregistered predicate Expr to be seen during Iceberg scan planning. Change-Id: I103e3b8b06b5a1d12214241fd5907e5192d682ce Reviewed-on: http://gerrit.cloudera.org:8080/19390 Reviewed-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com> > Avoid storing unregistered predicate objects in a Map > ----------------------------------------------------- > > Key: IMPALA-11811 > URL: https://issues.apache.org/jira/browse/IMPALA-11811 > Project: IMPALA > Issue Type: Bug > Components: fe > Affects Versions: Impala 1.4.2 > Reporter: Andrew Sherman > Assignee: Andrew Sherman > Priority: Major > > Within the extractIcebergConjuncts() method we are tracking conjuncts which > are identity conjuncts by storing them in a temporary Map. > The conjuncts are Expr objects which have a hashCode() method based on their > id_ field, which is only present when they are registered. > If the id_ field is null, then the hashCode() will throw, and hence > unregistered predicates cannot be stored in a Map. > This can happen if the conjuncts are bound predicates (produced by > getBoundPredicates()) which are explicitly not registered. > Change extractIcebergConjuncts() to track the identity conjuncts in another > way, perhaps using a boolean array which tracks the index of the identity > conjuncts in conjuncts_ List. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org For additional commands, e-mail: issues-all-h...@impala.apache.org