Skip to content

Conversation

@bkietz
Copy link
Member

@bkietz bkietz commented Nov 15, 2021

Superseded by #12279

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the motivation/effect of setting this to True? Always building static libs as well as shared?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only changed this for consistency with the cmake defaults, which these otherwise follow

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ARROW_ENGINE depends on ARROW_COMPUTE, can we set it somewhere?

Perhaps consider to place it under the compute subdirectory?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe ARROW_ENGINE may also someday depend on datasets, ipc, parquet, and maybe even flight. For example, a substrait plan will generally start with a scan node (datasets) and the engine may need to use spillover (ipc / parquet) and we might want to send data to or receive data from flight nodes.

Some of this we could probably avoid using more indirection (e.g. substrait consumer defines a "table provider" and the user can use the "datasets table provider" to link the two modules) but to start with it might be easier to just do the simple thing.

Either way, I think we will eventually want a standalone engine module that isn't really just a child of compute so I'm kind of in favor of it being a peer (and not a child) of compute.

See: ARROW-15238 (which this PR satisfies)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ARROW_ENGINE does now depend on datasets, where a scan node is used to wrap substrait::ReadRels

@bkietz bkietz force-pushed the substrait-consumer branch 2 times, most recently from 26ce7a6 to 3650484 Compare January 14, 2022 19:38
@bkietz bkietz marked this pull request as ready for review January 20, 2022 22:12
@bkietz bkietz changed the title [WIP] Substrait consumer Substrait consumer Jan 20, 2022
@bkietz bkietz force-pushed the substrait-consumer branch from c9f2058 to 5e0d6e5 Compare January 21, 2022 01:39
@bkietz bkietz changed the title Substrait consumer ARROW-15238: [C++] ARROW_ENGINE module with substrait consumer Jan 21, 2022
@apache apache deleted a comment from github-actions bot Jan 21, 2022
@github-actions
Copy link

@github-actions
Copy link

⚠️ Ticket has not been started in JIRA, please click 'Start Progress'.

@jvanstraten
Copy link
Contributor

This can be closed, see #12279 for continuation.

@westonpace westonpace closed this Jan 27, 2022
westonpace added a commit that referenced this pull request Feb 16, 2022
Continuation of #11707. I'm taking over from @bkietz for now because he's unavailable right now for personal reasons.

Closes #12279 from jvanstraten/substrait-consumer

Lead-authored-by: Benjamin Kietzman <[email protected]>
Co-authored-by: Jeroen van Straten <[email protected]>
Co-authored-by: Weston Pace <[email protected]>
Signed-off-by: Weston Pace <[email protected]>
marin-ma pushed a commit to marin-ma/arrow-1 that referenced this pull request Mar 28, 2022
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 <[email protected]>
Co-authored-by: Jeroen van Straten <[email protected]>
Co-authored-by: Weston Pace <[email protected]>
Signed-off-by: Weston Pace <[email protected]>
zhouyuan pushed a commit to oap-project/arrow that referenced this pull request Apr 18, 2022
* 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 <[email protected]>
Co-authored-by: Jeroen van Straten <[email protected]>
Co-authored-by: Weston Pace <[email protected]>
Signed-off-by: Weston Pace <[email protected]>

* 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 <[email protected]>
Signed-off-by: Weston Pace <[email protected]>
(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 <[email protected]>
Signed-off-by: Weston Pace <[email protected]>
(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 <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
(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 <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
(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 <[email protected]>
Signed-off-by: David Li <[email protected]>
(cherry picked from commit 8fce593)

* Enable TPCH Q6 & Q1

Co-authored-by: Benjamin Kietzman <[email protected]>
Co-authored-by: Jeroen van Straten <[email protected]>
Co-authored-by: Weston Pace <[email protected]>
Co-authored-by: Vibhatha Abeykoon <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants