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]>

Reply via email to