Skip to content

perf: locate the q2 zone by name before reading its boundary - #20

Merged
pranav-walimbe merged 1 commit into
mainfrom
fix/s3-read-fixes
Aug 25, 2026
Merged

perf: locate the q2 zone by name before reading its boundary#20
pranav-walimbe merged 1 commit into
mainfrom
fix/s3-read-fixes

Conversation

@pranav-walimbe

Copy link
Copy Markdown
Owner

The zone predicate prunes nothing because every row group's z_name statistics span the full name range, so Polars fetched all 1386 MB of boundary geometry to return one 169 KB polygon. Reading the name column alone costs 2.4 MB and identifies the file and row, after which a slice skips every other row group.

DuckDB already performs this late materialisation on the same declarative query. SedonaDB and Polars do not.

The zone predicate prunes nothing because every row group's z_name
statistics span the full name range, so Polars fetched all 1386 MB of
boundary geometry to return one 169 KB polygon. Reading the name column
alone costs 2.4 MB and identifies the file and row, after which a slice
skips every other row group.

DuckDB already performs this late materialisation on the same
declarative query. SedonaDB and Polars do not.
@pranav-walimbe
pranav-walimbe merged commit c0fd8f3 into main Aug 25, 2026
2 checks passed
@pranav-walimbe
pranav-walimbe deleted the fix/s3-read-fixes branch August 25, 2026 23:07
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.

1 participant