Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a pushdown “plan”/summary to JParqPreparedStatement so callers can introspect whether a query is using Parquet predicate pushdown vs. residual Java filtering, and it centralizes Parquet filtering configuration while updating docs and tests accordingly.
Changes:
- Introduces
JParqPreparedStatement.PushdownInfoplus a new publicgetPushdownInfo()API and debug logging of the derived pushdown plan. - Centralizes Parquet pruning configuration via
configureParquetFiltering(...)and applies it consistently across code paths. - Adds tests covering pushdown info for supported/unsupported predicates and parameterized (deferred → applied) pushdown behavior; updates README documentation.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/main/java/se/alipsa/jparq/JParqPreparedStatement.java | Adds PushdownInfo reporting/logging and centralizes Parquet filtering configuration. |
| src/test/java/jparq/JParqPreparedStatementParameterTest.java | Adds coverage for deferred vs. applied pushdown reporting for parameterized queries. |
| src/test/java/jparq/JParqPreparedStatementCoverageTest.java | Adds coverage for pushdown reporting on supported and unsupported predicate shapes. |
| README.md | Documents predicate pushdown behavior and the new getPushdownInfo() API. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request introduces comprehensive support for reporting and debugging Parquet predicate pushdown in
JParqPreparedStatement. It adds a new mechanism to summarize how queries leverage Parquet's filtering capabilities, exposes this information via a public API, and ensures the relevant configuration is consistently applied. The changes also include new tests to verify the reporting of pushdown details for various query scenarios.Parquet Predicate Pushdown Reporting and Configuration:
PushdownInforecord toJParqPreparedStatementthat summarizes how a prepared statement uses Parquet filtering features, including whether a predicate is attached, which pruning features are enabled, and a human-readable summary. This is exposed via the newgetPushdownInfo()method. [1] [2] [3]configureParquetFilteringmethod to consistently enable Parquet statistics, column-index, dictionary, and bloom-filter pruning in all relevant code paths, replacing repeated configuration code. [1] [2] [3]Documentation:
README.mdto document the new Parquet predicate pushdown capabilities, including supported and unsupported predicate shapes and the new API for inspecting pushdown plans.Testing:
getPushdownInfo()correctly reports pushdown details for supported, unsupported, and parameterized queries, ensuring accurate introspection of pushdown behavior. [1] [2]