GH-50859: [C++][Parquet] Move JsonWriter to simdjson utilities - #50990
Conversation
|
The CI failures need fixing. |
|
@pitrou done. |
Done |
|
Again, this PR is purely AI generated. I will mark as ready for review once I review myself. |
|
@rok Are you willing to prioritize this? |
|
@pitrou I'll review this in about an hour and ping again |
|
@github-actions crossbow submit example-cpp-tutorial |
|
Revision: 973b4d2 Submitted crossbow builds: ursacomputing/crossbow @ actions-5765e8701c
|
Parquet uses JsonWriter independently of the Arrow JSON module. Move the writer into the simdjson utilities so it is available whenever simdjson is enabled, including ARROW_JSON=OFF builds. Preserve the writer files as renames and update CMake, Meson, callers, and tests.
973b4d2 to
5a1f424
Compare
| SOURCES | ||
| json_writer_internal_test.cc | ||
| EXTRA_LINK_LIBS | ||
| simdjson::simdjson) |
There was a problem hiding this comment.
Should we use arrow::simdjson here instead? Both should work, but arrow alieas would hide the vendored/system simdjson.
There was a problem hiding this comment.
if(SIMDJSON_VENDORED)
add_library(arrow::simdjson ALIAS simdjson)
else()
add_library(arrow::simdjson ALIAS simdjson::simdjson)
endif()
It seems better to use arrow::simdjson based on the above statements? cc @kou
There was a problem hiding this comment.
Agreed, changed to arrow::simdjson.
|
@github-actions crossbow submit example-cpp-tutorial |
|
Revision: 86e85bd Submitted crossbow builds: ursacomputing/crossbow @ actions-e4578321bd
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 34 out of 34 changed files in this pull request and generated no new comments.
Suppressed comments (1)
cpp/src/parquet/encryption/key_material.h:79
- This removes an exported overload from the installed
parquet/encryption/key_material.h, so existing source and binaries that callKeyMaterial::Parse(const arrow::json::internal::ObjectParser*)will no longer compile/link. That contradicts the stated absence of user-facing changes. Please preserve the existing parser type/overload while making its implementation available when simdjson is enabled, or explicitly treat and document this as an API/ABI break.
static KeyMaterial Parse(const std::string& key_material_string);
6a88bfb to
d15007a
Compare
|
@github-actions crossbow submit -g cpp |
|
Revision: d15007a Submitted crossbow builds: ursacomputing/crossbow @ actions-350780c611 |
|
CI failures are unrelated to this PR. |
Rationale for this change
Parquet uses JsonWriter when ARROW_JSON=OFF, but its implementation was only built with Arrow JSON, causing link failures.
What changes are included in this PR?
Move JsonWriter to the simdjson utilities and update its callers and CMake/Meson builds.
Are these changes tested?
Yes. CMake shared/static and Meson Parquet builds pass with JSON disabled. Unit tests and pre-commit checks also pass.
Are there any user-facing changes?
No. This only fixes the affected build configuration.
AI disclosure - this was AI generated to test alternative approach to #50900.