arrow
arrow copied to clipboard
ARROW-17980: [C++] As-of-Join Substrait extension
See https://issues.apache.org/jira/browse/ARROW-17980
cc @icexelloss @westonpace
Note that this PR includes code from https://github.com/apache/arrow/pull/14386 which is currently pending.
@rtpsw Why do we need #14386 for this? Can we separate out these two changes?
@westonpace The changes here depends on your local change in https://github.com/westonpace/arrow/tree/experiment/substrait-extension
How do you want to proceed here? We can either (1) merge changes in experiment/substrait-extension and rebase this PR (2) combine changes in experiment/substrait-extension and the asof join message together in this PR and review together
@rtpsw Why do we need #14386 for this? Can we separate out these two changes?
Technically, we don't, or no longer do. I used #14386 during test cases development of this PR. If #14386 will be rejected, we could remove its code here too. Otherwise, the code can stay here and will merge cleanly with #14386.
@westonpace The changes here depends on your local change in https://github.com/westonpace/arrow/tree/experiment/substrait-extension
The code here uses most of Weston's code, except for mostly that the "dummy" DelayRel was replaced with AsOfJoinRel (including corresponding test code) and that the code was refactored a bit. So, I think the code here should go in without a merge or a rebase.
https://issues.apache.org/jira/browse/ARROW-17980
@westonpace, any idea why some jobs, like this one, failed? It seems to be complaining about missing proto classes; I don't know why the proto classes would get built in some jobs and not in others.
@rtpsw I took one around of review. At the high level I think this makes lot of sense. Left some comments for refinement.
CI failures look unrelated the changes here. @icexelloss, this may be ready for an Arrow review, WDYT?
@rtpsw Looks pretty good! There seems to be many style changes that seems orthogonal. Are those changes automatically made? Is it easy to separate out the style change from the actual change?
@rtpsw Looks pretty good! There seems to be many style changes that seems orthogonal. Are those changes automatically made? Is it easy to separate out the style change from the actual change?
If we insist, we could take these style changes out to a separate PR, get that merged, and then come back here to rebase.
@rtpsw Looks pretty good! There seems to be many style changes that seems orthogonal. Are those changes automatically made? Is it easy to separate out the style change from the actual change?
If we insist, we could take these style changes out to a separate PR, get that merged, and then come back here to rebase.
Anja suggested changing arrow::engine::substrait to arrow::engine::substrait_ext to avoid MSVC name conflicts with symbols in ::substrait. This should allow us to keep using substrait:: instead of ::substrait:: and avoid a large orthogonal change.
@rtpsw Looks pretty good! There seems to be many style changes that seems orthogonal. Are those changes automatically made? Is it easy to separate out the style change from the actual change?
If we insist, we could take these style changes out to a separate PR, get that merged, and then come back here to rebase.
Anja suggested changing
arrow::engine::substraittoarrow::engine::substrait_extto avoid MSVC name conflicts with symbols in::substrait. This should allow us to keep usingsubstrait::instead of::substrait::and avoid a large orthogonal change.
Does arrow::engine::substrait::extension work?
Does
arrow::engine::substrait::extensionwork?
My guess is this would confuse MSVC just the same because when it sees a substrait::* symbol it would look under arrow::engine::substrait and won't fall back to ::substrait.
@rtpsw Looks pretty good! There seems to be many style changes that seems orthogonal. Are those changes automatically made? Is it easy to separate out the style change from the actual change?
@icexelloss, I managed to minimize the orthogonal change (namespace substrait = ::substrait added to a few files). I think this should be enough to make reviewing convenient.
The commit history got messed up. I'll try to open a fresh PR.
@rtpsw You don't need to open a new PR - you can just force push to your branch ARROW-17980 and fix the commit history