Skip to content

fix(parquet): validate geospatial projection parameters - #1050

Merged
wgtmac merged 2 commits into
apache:mainfrom
manuzhang:codex/validate-geospatial-projection
Oct 22, 2026
Merged

wgtmac merged 2 commits into
apache:mainfrom
manuzhang:codex/validate-geospatial-projection

Conversation

@manuzhang

Copy link
Copy Markdown
Member

Parquet projection currently accepts incompatible geometry/geography parameters, such as geometry(EPSG:3857) read as geometry(OGC:CRS84). WKB carries neither the CRS nor the geography edge algorithm, so this silently changes the meaning of the values.

Validate CRS case-insensitively and require matching geography edge algorithms. Resolve omitted Parquet CRS to OGC:CRS84 and include the column path in mismatch errors. Add coverage for defaults, all five algorithms, independent parameter mismatches, and nested struct/list/map projection with an unselected sibling.

Follow-up to #880, as discussed in #880 (comment). Aligns with the validation in apache/iceberg#17578.

Validation: current core CMake build passed; all 34 tests in parquet_schema_test.cc passed when compiled and linked directly against installed Arrow/Parquet 24.0.0 and GTest 1.17.0 with -Wall -Wextra -Werror. Both new regression tests fail against the unchanged projection implementation. clang-format --dry-run --Werror and git diff --check passed. The full bundle build and bundled Arrow 25 integration suite have not been run.

Copilot AI balanced review requested due to automatic review settings October 22, 2026 02:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@manuzhang
manuzhang marked this pull request as ready for review October 22, 2026 03:03
Copilot AI balanced review requested due to automatic review settings October 22, 2026 03:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

manuzhang and others added 2 commits October 22, 2026 12:07
Reject incompatible geometry/geography CRS and geography edge algorithms during projection. Resolve omitted Parquet CRS to OGC:CRS84 and include the field path in mismatch errors.

Co-authored-by: Codex <codex@openai.com>
Extract common CRS normalization, parameter comparison, and mismatch reporting into a helper used by geometry and geography projection.

Co-authored-by: Codex <codex@openai.com>
@manuzhang
manuzhang force-pushed the codex/validate-geospatial-projection branch from c9278bd to 7ad4108 Compare October 22, 2026 04:08
Copilot AI balanced review requested due to automatic review settings October 22, 2026 04:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@manuzhang
manuzhang requested review from wgtmac and zhjwpku October 22, 2026 04:10
@wgtmac
wgtmac merged commit 62c5c2f into apache:main Oct 22, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants