Uh oh!
There was an error while loading. Please reload this page.
ARROW-15258: [C++] Easy options to create a source node from a table - #12267
ARROW-15258: [C++] Easy options to create a source node from a table#12267vibhatha wants to merge 18 commits into
Conversation
Uh oh!
There was an error while loading. Please reload this page.
westonpace
left a comment
There was a problem hiding this comment.
This looks great. I have a lot of minor comments about style but the actual substance looks correct to me.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Can you use ASSIGN_OR_ABORT and add a comment explaining that a TableBatchReader should not be able to fail but always returns an OK status to comply with the RecordBatchReader interface.
Then you can change the return value to std::vector<ExecBatch> and get rid of the ValueOrDie
Otherwise I don't think it would be safe to be doing this kind of work in a constructor (and we should be doing it in the Make method instead so we can propagate the failure).
There was a problem hiding this comment.
Yes, this is indeed neater and safe.
There was a problem hiding this comment.
Isn't this is a part of gtest_util.h, should we include it? I see it's usage is only in the tests and benchmarks.
Did I interpret it right? Please correct me if I am wrong.
There was a problem hiding this comment.
Instead what if we add
auto batch_res = reader->Next();
if (batch_res.ok()) {
batch = batch_res.ValueOrDie();
}Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
westonpace
left a comment
There was a problem hiding this comment.
Thanks for fixing things up. Sorry for the delay on this review.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
8b85ed5 to
6ac1ed2Comparebfedc95 to
dec8ea2CompareBenchmark runs are scheduled for baseline = a26506c and contender = fffdca2. fffdca2 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
This PR includes the addition of `TableSourceNode` to create a `ExecNode` easily using a table as the data source. ### TODO - [x] Fix test case for chunk_size Closesapache#12267 from vibhatha/arrow-15258-rb Authored-by: Vibhatha Abeykoon <vibhatha@gmail.com> Signed-off-by: Weston Pace <weston.pace@gmail.com> (cherry picked from commit fffdca2)
* ARROW-15238: [C++] ARROW_ENGINE module with substrait consumer Continuation of apache#11707. I'm taking over from @bkietz for now because he's unavailable right now for personal reasons. Closesapache#12279 from jvanstraten/substrait-consumer Lead-authored-by: Benjamin Kietzman <bengilgit@gmail.com> Co-authored-by: Jeroen van Straten <jeroen.van.straten@gmail.com> Co-authored-by: Weston Pace <weston.pace@gmail.com> Signed-off-by: Weston Pace <weston.pace@gmail.com> * ARROW-15700: [C++] Compilation error on Ubuntu 18.04 Modified Substrait consumer interaction with libprotobuf to support versions down to 3.0.0, which is the minimum required due to Substrait's usage of proto3 syntax. Tested locally with: ``` export ARROW_PROTOBUF_URL=https://github.com/protocolbuffers/protobuf/releases/download/v3.0.0/protobuf-cpp-3.0.0.tar.gz cmake \ --preset ninja-debug \ -DProtobuf_SOURCE=BUNDLED \ -DARROW_PROTOBUF_BUILD_VERSION=v3.0.0 \ -DARROW_PROTOBUF_BUILD_SHA256_CHECKSUM=318e8f375fb4e5333975a40e0d1215e855b4a8c581d692eb0eb7df70db1a8d4e ``` (Is there an easier way to do this without modifying versions.txt or 751fb9d? Also, the env var is needed only because Google isn't at all consistent with their release file naming that far back.) It'd also be nice to add this to CI, but it's probably excessive to always run for a PR, unless combined with some other run. Closesapache#12448 from jvanstraten/ARROW-15700-Compilation-error-on-Ubuntu-18-04 Authored-by: Jeroen van Straten <jeroen.van.straten@gmail.com> Signed-off-by: Weston Pace <weston.pace@gmail.com> (cherry picked from commit 7d16a78) * ARROW-15258: [C++] Easy options to create a source node from a table This PR includes the addition of `TableSourceNode` to create a `ExecNode` easily using a table as the data source. ### TODO - [x] Fix test case for chunk_size Closesapache#12267 from vibhatha/arrow-15258-rb Authored-by: Vibhatha Abeykoon <vibhatha@gmail.com> Signed-off-by: Weston Pace <weston.pace@gmail.com> (cherry picked from commit fffdca2) * ARROW-15709: [C++] Compilation of ARROW_ENGINE fails if doing an "inline" build This should fix: - inline builds in general (ARROW-15709); - [weird stuff with inline builds causing non-tracked files to be deleted](https://github.com/apache/arrow;/pull/12444#issuecomment-1043143303) that the [previous fix](apache#12444) for the above [caused](apache#12454) - dependencies on git for downloading dependencies (ARROW-15760); - the build process for Substrait previously being treated as something too special to use Arrow's normal method for dealing with third-party dependencies (i.e. `ThirdpartyToolchain.cmake`) --- Initial attempt at making something functional to solve this issue properly. The use of `add_arrow_lib` in `ThirdpartyToolchain.cmake` is certainly odd, and I'm sure I'm not following best practices in that file in general. I could use some advice on what the proper way to do this would be. Some of the issues: - The CMake property specifying that a path refers to a generated file is scoped only to the current CMake file, so only moving the `externalproject_add` over to `ThirdpartyToolchain.cmake` resulted in the `add_arrow_lib` in `src/arrow/engine` failing due to missing source files. An object library didn't seem to resolve it either, and there are probably portability issues with that anyway, so that's why I ended up just using `add_arrow_lib`. - Unlike all the other third-party dependencies (AFAICT), Substrait can't currently be installed, so `Substrait_SOURCE=SYSTEM` makes no sense. In the end I just decided to override it, but that's probably not ideal. - Substrait doesn't have releases yet, so I had to resort to a git hash instead. </details> Closesapache#12457 from jvanstraten/ARROW-15709-Compilation-of-ARROW-ENGINE-fails-if-doi Authored-by: Jeroen van Straten <jeroen.van.straten@gmail.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com> (cherry picked from commit 89cc6b3) * ARROW-15830: [C++] Ensure target directory exists before running Substrait generation Closesapache#12548 from pitrou/ARROW-15830-ubuntu-cpp-bundled Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Sutou Kouhei <kou@clear-code.com> (cherry picked from commit e989fb3) * ARROW-15850: [C++] Engine substrait headers missing from install Closesapache#12569 from westonpace/feature/ARROW-15850--substrait-headers-missing Authored-by: Weston Pace <weston.pace@gmail.com> Signed-off-by: David Li <li.davidm96@gmail.com> (cherry picked from commit 8fce593) * Enable TPCH Q6 & Q1 Co-authored-by: Benjamin Kietzman <bengilgit@gmail.com> Co-authored-by: Jeroen van Straten <jeroen.van.straten@gmail.com> Co-authored-by: Weston Pace <weston.pace@gmail.com> Co-authored-by: Vibhatha Abeykoon <vibhatha@gmail.com> Co-authored-by: Antoine Pitrou <antoine@python.org>
This PR includes the addition of
TableSourceNodeto create aExecNodeeasily using a table as the data source.TODO