Gopal V created HIVE-11638:
------------------------------
Summary: ExprNodeDesc hashMap accidentally degrades into O(N)
instead of O(1)
Key: HIVE-11638
URL: https://issues.apache.org/jira/browse/HIVE-11638
Project: Hive
Issue Type: Bug
Components: Logical Optimizer
Affects Versions: 1.2.1, 1.1.1, 1.0.1, 0.14.0, 1.3.0, 2.0.0
Reporter: Gopal V
Assignee: Gopal V
Due to the absence of ExprNodeDesc::equals() & the presence of a hashCode(),
any code which computes a Set or HashMap of identical objects ends up with a
skewed hashmap which degrades column lookups from O(1) to O(N) during optimizer
passes.
So, several hundred references to a single column desc will be stored in a
single hashbucket, but since they default to Object::equals(), they are not
equal to each other.
Finalize the equals() method, so that the approach from HIVE-10215 carries over
safely.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)