-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARROW-15238: [C++] ARROW_ENGINE module with substrait consumer #12279
Conversation
Using `--preset ninja-debug`. Build will fail on initially on GCC 11+ due to a use of undefined error from googletest; lower version is needed to avoid hundreds of instances of an ambiguous print overload, but that version doesn't have googletest PR 3024 included yet. This change needs to be made manually in the googletest build tree as downloaded by cmake.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jvanstraten and I are going to review this in person tomorrow but at the moment I think most of the major concerns have been addressed.
Ah, that appveyor Windows error looks like it might be legitimate. Can you investigate that? |
…s explaining the behavior and hid more of the underlying implementation which will help future-proof us in case we move to a map-based version in the future. Fixed a bug in execution plan creation where we were referencing the Substrait function name instead of the Arrow function name.
…d of use hard coded filenames. If no filename is specified we return 0 which is needed because CI will call the examples and we cannot fail. Removed the filter from the example expression because it triggers ARROW-15658 and we need to resolve ARROW-15586 first anyways. Added logic in the scanner to provide a default projection when none is specified.
Co-authored-by: Jeroen van Straten <jeroen.van.straten@gmail.com>
Documented SimpleExtensionType and simplified ExtensionSet
Substrait consumer build fix
…ed to reset the USE_STATIC_LIBS flag so that downstream components know it was built statically even if a shared library was requested.
If we build protobuf from source we always build it statically. We n…
Benchmark runs are scheduled for baseline = f8689a1 and contender = a935c81. a935c81 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
Continuation of apache#11707. I'm taking over from @bkietz for now because he's unavailable right now for personal reasons. Closes apache#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-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. Closes apache#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. Closes apache#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 Closes apache#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> Closes apache#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 Closes apache#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 Closes apache#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>
Continuation of #11707. I'm taking over from @bkietz for now because he's unavailable right now for personal reasons.