[ https://issues.apache.org/jira/browse/ARROW-18205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Weston Pace resolved ARROW-18205. --------------------------------- Fix Version/s: 11.0.0 Resolution: Fixed Issue resolved by pull request 14558 [https://github.com/apache/arrow/pull/14558] > [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 > Labels: pull-request-available > Fix For: 11.0.0 > > Time Spent: 1h 10m > Remaining Estimate: 0h > > 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)