Skip to content
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-17517: [C++] Remove internal headers from substrait API #14131

Conversation

westonpace
Copy link
Member

No description provided.

@westonpace
Copy link
Member Author

I figured I should tackle this to brush up on the rules for includes myself to try and help keep things clean going forwards. While I was at it I also did a bit of general header cleanup. The only structural changes were moving MapNode into its own file (I think @save-buffer has a PR to remove this at some point anyways so it seemed easier to do this than try and hide it's impl in some way) and converting IdStorage to a virtual class to hide its implementation (depended on internal hashing stuff).

Attaching a snippet showing the compile tree from compiling engine_substrait_consumption.cc (which uses the engine API).
deps.txt

@kou
Copy link
Member

kou commented Sep 15, 2022

It seems that you refer wrong Jira issue.

@westonpace westonpace changed the title ARROW-17157: [C++] Remove internal headers from substrait API ARROW-17517: [C++] Remove internal headers from substrait API Sep 15, 2022
@westonpace
Copy link
Member Author

It seems that you refer wrong Jira issue.

Oops, thanks :)

@github-actions
Copy link

@github-actions
Copy link

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

@westonpace
Copy link
Member Author

I'm a little stumped by this Windows error. MapNode is an abstract base class. It is used by project_node.cc, filter_node.cc (both in arrow compute) and also by file_base.cc (in datasets). In order for it to be seen by datasets I have to mark it as ARROW_EXPORT. However, when I do so, I get duplicate symbols when linking arrow compute (presumably because project_node and filter_node each have implementations?) If I remove ARROW_EXPORT then datasets fails to link because it can't find the symbols.

@pitrou
Copy link
Member

pitrou commented Sep 15, 2022

The weird thing is that it works fine on AppVeyor. Might be an issue with ccache...

@pitrou
Copy link
Member

pitrou commented Sep 15, 2022

You probably need to rebase on master now and fix conflicts (switch to std::optional).

@westonpace westonpace force-pushed the bugfix/ARROW-17157--remove-internal-headers-from-substrait branch from 47a7cce to 55af4d7 Compare September 15, 2022 14:22
@westonpace
Copy link
Member Author

The weird thing is that it works fine on AppVeyor. Might be an issue with ccache...

@pitrou

Looks like the rebase magically solved the Windows problem so maybe it was ccache then. I think the remaining CI failures are unrelated.

@pitrou pitrou force-pushed the bugfix/ARROW-17157--remove-internal-headers-from-substrait branch from 55af4d7 to ac9de3c Compare September 19, 2022 16:33
@pitrou
Copy link
Member

pitrou commented Sep 19, 2022

Rebased and fixed a small error compiling the Flight examples.

@pitrou
Copy link
Member

pitrou commented Sep 19, 2022

Hmm, the macOS build failures look unexpected but also unrelated to this.

@pitrou pitrou merged commit 529f653 into apache:master Sep 19, 2022
@pitrou
Copy link
Member

pitrou commented Sep 19, 2022

Thanks @westonpace ! I'm keeping the JIRA open for the small followup PR.

@ursabot
Copy link

ursabot commented Sep 19, 2022

Benchmark runs are scheduled for baseline = 081b70b and contender = 529f653. 529f653 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.14% ⬆️0.17%] test-mac-arm
[Failed ⬇️0.28% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.5% ⬆️0.21%] ursa-thinkcentre-m75q
Buildkite builds:
[Finished] 529f653d ec2-t3-xlarge-us-east-2
[Finished] 529f653d test-mac-arm
[Failed] 529f653d ursa-i9-9960x
[Finished] 529f653d ursa-thinkcentre-m75q
[Finished] 081b70ba ec2-t3-xlarge-us-east-2
[Finished] 081b70ba test-mac-arm
[Failed] 081b70ba ursa-i9-9960x
[Finished] 081b70ba ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python, R. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@ursabot
Copy link

ursabot commented Sep 19, 2022

['Python', 'R'] benchmarks have high level of regressions.
test-mac-arm

zagto pushed a commit to zagto/arrow that referenced this pull request Oct 7, 2022
…#14131)

Lead-authored-by: Weston Pace <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
fatemehp pushed a commit to fatemehp/arrow that referenced this pull request Oct 17, 2022
…#14131)

Lead-authored-by: Weston Pace <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Signed-off-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.

4 participants