Stamatis Zampetakis created HIVE-26312:
------------------------------------------
Summary: Use default digest normalization strategy in CBO
Key: HIVE-26312
URL: https://issues.apache.org/jira/browse/HIVE-26312
Project: Hive
Issue Type: Task
Components: CBO
Affects Versions: 4.0.0-alpha-1
Reporter: Stamatis Zampetakis
Assignee: Stamatis Zampetakis
CALCITE-2450 introduced a way to improve planning time by normalizing some
query expressions (RexNodes). The behavior can be enabled/disabled via the
following system property: calcite.enable.rexnode.digest.normalize
There was an attempt to disable the normalization explicitly in HIVE-23456 to
avoid rendering HiveFilterSortPredicates rule useless. However, the [way the
normalization is disabled
now|https://github.com/apache/hive/blob/f29cb2245c97102975ea0dd73783049eaa0947a0/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java#L549],
dependents on the way classes are loaded. If for some reason
CalciteSystemProperty is loaded before hitting the respective line in Hive.java
setting the property will not have any effect.
After HIVE-26238 the behavior of the rule is not dependent in the value of the
property so there is nothing holding us back from enabling the normalization.
At the moment there is not strong reason to enable or disable the normalization
explicitly so it is better to rely on the default value provided by Calcite to
avoid running with different normalization strategy when the class loading
order changes.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)