[
https://issues.apache.org/jira/browse/HIVE-25952?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alessandro Solimando updated HIVE-25952:
----------------------------------------
Description:
There are some differences on this method between Hive and Calcite, the idea of
this ticket is to unify the two methods, and then drop the override in
HiveRelMdPredicates in favour of the method of RelMdPredicates.
After applying HIVE-25966, the only difference is in the test for constant
expressions, which can be summarized as follows:
||Expression Type|Is Constant for Hive?||Is Constant for Calcite?||
|InputRef|False|False|
|Call|True if function is deterministic (arguments are not checked), false
otherwise|True if function is deterministic and all operands are constants,
false otherwise|
|CorrelatedVariable|False|False|
|LocalRef|False|False|
|Over|False|False|
|DymanicParameter|False|True|
|RangeRef|False|False|
|FieldAccess|False|Given expr.field, true if expr is constant, false otherwise|
was:
There are some differences on this method between Hive and Calcite, the idea of
this ticket is to unify the two methods, and then drop the override in
HiveRelMdPredicates in favour of the method of RelMdPredicates.
The only real
> Drop HiveRelMdPredicates::getPredicates(Project...) to use that of
> RelMdPredicates
> ----------------------------------------------------------------------------------
>
> Key: HIVE-25952
> URL: https://issues.apache.org/jira/browse/HIVE-25952
> Project: Hive
> Issue Type: Sub-task
> Components: CBO
> Affects Versions: 4.0.0
> Reporter: Alessandro Solimando
> Assignee: Alessandro Solimando
> Priority: Major
> Labels: pull-request-available
> Time Spent: 40m
> Remaining Estimate: 0h
>
> There are some differences on this method between Hive and Calcite, the idea
> of this ticket is to unify the two methods, and then drop the override in
> HiveRelMdPredicates in favour of the method of RelMdPredicates.
> After applying HIVE-25966, the only difference is in the test for constant
> expressions, which can be summarized as follows:
> ||Expression Type|Is Constant for Hive?||Is Constant for Calcite?||
> |InputRef|False|False|
> |Call|True if function is deterministic (arguments are not checked), false
> otherwise|True if function is deterministic and all operands are constants,
> false otherwise|
> |CorrelatedVariable|False|False|
> |LocalRef|False|False|
> |Over|False|False|
> |DymanicParameter|False|True|
> |RangeRef|False|False|
> |FieldAccess|False|Given expr.field, true if expr is constant, false
> otherwise|
--
This message was sent by Atlassian Jira
(v8.20.1#820001)