Andrew Sherman has uploaded this change for review. ( http://gerrit.cloudera.org:8080/19390
Change subject: IMPALA-11811: Avoid storing unregistered predicate objects in a Map ...................................................................... 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 --- M fe/src/main/java/org/apache/impala/analysis/Expr.java M fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java M testdata/workloads/functional-query/queries/QueryTest/iceberg-query.test 3 files changed, 20 insertions(+), 6 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/90/19390/1 -- To view, visit http://gerrit.cloudera.org:8080/19390 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I103e3b8b06b5a1d12214241fd5907e5192d682ce Gerrit-Change-Number: 19390 Gerrit-PatchSet: 1 Gerrit-Owner: Andrew Sherman <[email protected]>
