C++ no longer leak arrow headers into our own headers, include minimal set #3041
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
We now use our own status type everywhere, allowing us to predeclare everything arrow.
On top of that I made sure that we include a much more minimal set of arrow headers for the serialization code itself.
There's a static assertion in the unit test that ensures that we don't start leaking arrow headers into the future
Haven't measured, but it feels like this also improved compile times of the sdk which were already pretty good.
The one thing that's noted in #2873 but is not happening here yet (?) is splitting out the utility methods. The idea would be this (actual generated code I already have on a test branch!) :
The problem is that this makes calling these helpers unnecessary complicated sicne I need to append
SerializationUtilsto the typename of some previously static method calls which is suprisingly cumbersome 🤔EDIT: Briefly chatted with Emil about it. Let's do it, it's actually not that hard
Checklist