Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 4.2.0
-
None
-
ghx-label-3
Description
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.