[
https://issues.apache.org/jira/browse/ARROW-18205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vibhatha Lakmal Abeykoon reassigned ARROW-18205:
------------------------------------------------
Assignee: Vibhatha Lakmal Abeykoon
> [C++] Substrait consumer is not converting right side references correctly on
> joins
> -----------------------------------------------------------------------------------
>
> Key: ARROW-18205
> URL: https://issues.apache.org/jira/browse/ARROW-18205
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++
> Reporter: Weston Pace
> Assignee: Vibhatha Lakmal Abeykoon
> Priority: Major
>
> The Substrait plan expresses a join condition as a logical expression like:
> {{field(0) == field(3)}} where {{0}} and {{3}} are indices into the
> *combined* schema. These are then passed down to Acero which expects:
> {{HashJoinNodeOptions(std::vector<FieldRef> in_left_keys,
> std::vector<FieldRef> in_right_keys)}}
> However, {{in_left_keys}} are field references into the *left* schema and
> {{in_right_keys}} are field references into the *right* schema.
> In other words, given the above expression ({{field(0) == field(3)}} if the
> schema were:
> left:
> key: int32
> y: int32
> z: int32
> right:
> key: int32
> x: int32
> Then {{in_left_keys}} should be {{field(0)}} (works correct today) and
> {{in_right_keys}} should be {{field(0)}} (today we are sending in
> {{field(3)}}).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)