gripleaf opened a new pull request, #310:
URL: https://github.com/apache/paimon-cpp/pull/310

   ### Purpose
   
     Linked issue: #240 
   
     Reduce unnecessary decoding and Arrow materialization when reading a 
single bucket from a mixed-bucket manifest.
   
     - When manifest bytes are retained in memory, first read the version and 
bucket fields, validate every entry’s version, and collect matching row IDs. 
Then materialize only matching entries using precise bitmap selection.
     - Support precise bitmap selection in the Avro reader while preserving 
original file row IDs.
     - Reuse reader-local block indexes to skip blocks without matching rows. 
Limit indexes to 65,536 blocks and fall back to sequential selection when the 
limit is exceeded or the initial pass is incomplete.
     - Preserve single-pass reads when bytes are not retained, precise 
selection is unavailable, or manifest metadata identifies a single matching 
bucket.
   
     This change does not include the separate Avro skip-plan optimization. No 
isolated end-to-end latency improvement is claimed.
   
     ### Tests
   
     Added coverage for:
   
     - Empty, sparse, full, and out-of-range bitmap selections.
     - Nested nullable values, original row IDs, schema resets, and repeated 
EOF.
     - Cross-block selection after complete and incomplete projection passes.
     - Sequential fallback after exceeding the block-index limit.
     - Cached and uncached bucket reads.
     - Invalid versions and null version/bucket fields outside the selected 
bucket.
   
     Local validation:
   
     - Avro tests: 73/73 passed.
     - Manifest and scan tests: 43/43 passed.
     - Read integration tests: 294/294 passed.
     - Core tests: 1,899/1,901 passed. Two commit-path tests failed because 
their fixtures select ORC manifests, which the writer rejects as read-only. A 
separate clean-main reproduction was not run.
     - Changed-file pre-commit checks and git diff --check passed.
   
     For local GCC 13 validation, -Wmaybe-uninitialized was downgraded from an 
error only for the unchanged arrow_realtime_store_test.cpp generated build 
rule. No warning-policy changes are included.
   
     ### API and Format
   
     No public API signatures, storage formats, or protocols are changed.
   
     The Avro reader now honors the existing selection bitmap API and reports 
precise bitmap-selection support. Block indexes are transient, bounded, 
reader-local state.
   
     ### Documentation
   
     No new user-facing configuration is introduced. Implementation comments 
describe the retained-bytes requirement, bounded indexes, and fallback behavior.
   
     ### Generative AI tooling
   
     Generated-by: OpenAI Codex (GPT-5).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to