Uh oh!
There was an error while loading. Please reload this page.
GH-34630: [C++] Second block of refactoring to move acero out of libarrow - #34575
Conversation
| ->FailOnError() | ||
| ->SourceNode(kRowsPerBatch, kNumBatches); | ||
| auto generator = gen::Gen({{"x", gen::Step()}})->FailOnError(); |
There was a problem hiding this comment.
This was using generator.h with compute/exec/options.h. I removed that include (and the associated exec options from generator, that is SourceNode()) and expanded it in this test, which was the only place where it was used.
There was a problem hiding this comment.
I am planning on starting to use these utilities in more places. However, we can introduce exec::gen::Gen (or something like that) which wraps the generator and adds exec-specific utilities. So I think this is tolerable for now.
icexelloss
commented
Mar 15, 2023
@ildipo High level looks good to me. Is the general idea of moving "expression" from "compute/exec" to "compute" such that it is consider part of "libarrow" and not "libarrow_acero"? |
I also removed most of the reviewers - I think the changes to C/Python/R binding is trivial but if @westonpace think this need review from C/R maintainers we can add back. |
ildipo
commented
Mar 15, 2023
Yes I feel what is in expression.h is used in many other places (e.g. inside kernels) so it belongs to libarrow |
ildipo
commented
Mar 15, 2023
I'm not sure why one check failed (apparently it was cancelled???) |
@ildipo Error is this Looks like some linking errors but on windows only |
icexelloss
commented
Mar 15, 2023
Got it - makes sense to me. @westonpace does that sound about right? |
westonpace
commented
Mar 15, 2023
Yes, Thinking beyond just "stability" I think there is a pretty reasonable separation in Arrow between "compute functions" and "the execution engine" and I think it makes sense for |
westonpace
commented
Mar 15, 2023
I'll try and get a closer look at this tonight but it might be tomorrow. |
westonpace
left a comment
There was a problem hiding this comment.
A few minor things but this looks correct to me. Thanks!
| #include "arrow/compute/exec.h" // IWYU pragma: export | ||
| #include "arrow/compute/exec/exec_plan.h" // IWYU pragma: export | ||
| #include "arrow/compute/exec/groupby.h" // IWYU pragma: export | ||
| #include "arrow/compute/exec.h" // IWYU pragma: export |
There was a problem hiding this comment.
This could probably be split someday (no need to do it in this PR). ExecContext / ExecSpan / ExecResult / ExecValue / CallFunction / GetFunctionExecutor belong in compute. ExecBatch belongs in exec. SelectionVector could probably be removed at this point and added back in later if we ever decide to do something with it.
There was a problem hiding this comment.
I'll fix the other things in this PR and then make another one to move ExecBatch
| ->FailOnError() | ||
| ->SourceNode(kRowsPerBatch, kNumBatches); | ||
| auto generator = gen::Gen({{"x", gen::Step()}})->FailOnError(); |
There was a problem hiding this comment.
I am planning on starting to use these utilities in more places. However, we can introduce exec::gen::Gen (or something like that) which wraps the generator and adds exec-specific utilities. So I think this is tolerable for now.
| @@ -50,14 +50,6 @@ struct KernelState; | |||
| struct Declaration; | |||
There was a problem hiding this comment.
I think Declaration is part of exec too.
There was a problem hiding this comment.
good point, moving in exec/type_fwd.h
| std::shared_ptr<DataGenerator> Target() { return target_; } | ||
ildipo
commented
Mar 16, 2023
Updated the PR with the changes detailed above. |
assignUser
commented
Mar 17, 2023
@github-actions crossbow submit -g cpp |
Revision: a3c7b38 Submitted crossbow builds: ursacomputing/crossbow @ actions-b5e5c878a5 |
ildipo
commented
Mar 17, 2023
The above failures seem unrelated to this PR. |
There seems to be a failure in recent CI runs (test-alpine-linux-cpp): Also some valgrind failures on the following tests: I suspect those are not caused by this PR - do we have these failures on default branch as well? Edit: Didn't see @ildipo 's comment above saying these seem unrelated. From the change set I don't think this PR would cause the failures above and I think this is safe to merge. |
icexelloss
commented
Mar 17, 2023
@westonpace@ildipo I approved. Is there anything you would like to check/change? If not I will merge this end of day today. |
ildipo
commented
Mar 17, 2023
nothing else to add to this PR |
ildipo
commented
Mar 17, 2023
just don't close the associated issue - I think github will close it automatically |
assignUser
commented
Mar 18, 2023
Please create separate issues and track them in an umbrella issue to avoid having to re-open issues to avoid confusion now and during changelog creation. I have created #34630 for this PR @ildipo please comment "take" on it to have it assigned (automatic assignment failed as you have not interacted with the issue - a GH spam protection) |
kou
commented
Mar 18, 2023
@icexelloss Could you use https://github.com/apache/arrow/blob/main/dev/merge_arrow_pr.py instead of GitHub's merge button as much as possible? The script does some more preparations. |
icexelloss
commented
Mar 18, 2023
via email
Oh sure sorry didn’t realize that. Will certainly do next time. …On Sat, Mar 18, 2023 at 11:36 AM Sutou Kouhei ***@***.***> wrote:
@icexelloss <https://github.com/icexelloss> Could you use
https://github.com/apache/arrow/blob/main/dev/merge_arrow_pr.py instead
of GitHub's merge button as much as possible? The script does some more
preparations.
—
Reply to this email directly, view it on GitHub
<#34575 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGBXLERU2KEKSNTXIDS6ADW4XI6JANCNFSM6AAAAAAV4C26LY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
ursabot
commented
Mar 18, 2023
Benchmark runs are scheduled for baseline = 682c112 and contender = 8524572. 8524572 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
ursabot
commented
Mar 18, 2023
['Python', 'R'] benchmarks have high level of regressions. |
Rationale for this change
This is the second and last block of refactoring before moving acero out of libarrow. This PR removes the remaining dependencies from libarrow into the compute/exec directory.
What changes are included in this PR?
In detail:
Are these changes tested?
Yes using existing tests (some of which have been updated due to refactoring).
Are there any user-facing changes?
no