Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
4.0.0
-
None
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 |
Attachments
Issue Links
- fixes
-
HIVE-26733 Not safe to use '=' for predicates on constant expressions that might be NULL
- Open
- is blocked by
-
HIVE-25966 Align HiveRelMdPredicates getPredicates() for Project with RelMdPredicates
- In Progress
- links to
(1 links to)