Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Bug
-
1.18.0
-
None
-
None
Description
RelOptUtil#splitJoinCondition "Splits out the equi-join components of a join condition, and returns what's left (remaining join filters that are not equijoins)". This works fine in case of RexInputRef operands in the condition (e.g. $0 = $1), but if any of the operands is a RexFieldAccess referencing a RexInputRef (e.g. $0 = $1.id), then the condition will NOT be detected as an equi-join and will be returned as if it were a non-equijoin.
This can lead to undesired consequences, e.g JoinInfo#of would return a NonEquiJoinInfo object instead of an EquiJoinInfo object, which can generate problems if, for example, we are creating a SemiJoin (which requires an EquiJoinInfo object)
Attachments
Issue Links
- is related to
-
CALCITE-2973 Allow theta joins that have equi conditions to be executed using a hash join algorithm
- Closed
- links to