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

   ### Purpose
   
   Linked issue: part of #493
   
   `IndexManifestFile` and `IndexManifestFileHandler` received the configured 
`bucket` option and
   treated `-1` as `BUCKET_UNAWARE` when choosing how to combine deletion 
vector index entries. A
   primary-key table with dynamic buckets also has `bucket = -1`, but keeps one 
deletion vector index
   per (partition, bucket), so it must use the bucketed combiner, as Java does 
for
   `BucketMode.HASH_DYNAMIC`.
   
   This change passes the resolved `BucketMode` 
(`ResolveBucketMode(options.GetBucket(), schema)`)
   everywhere an `IndexManifestFile` is created, and only uses the global 
deletion vector combiner
   for `BUCKET_UNAWARE`.
   
   There is no behavior change for tables that can be written today: dynamic 
bucket primary-key
   tables are still rejected by the writer. This is the first step of #493; 
batch reads of those
   tables follow in a separate PR.
   
   ### Tests
   
   - `IndexManifestFileHandlerTest`: existing cases now pass an explicit 
`BucketMode`; added
     `DynamicBucketDvUsesBucketedCombiner`, which checks that a new deletion 
vector index of a
     `HASH_DYNAMIC` table replaces the previous one of the same (partition, 
bucket) and leaves
     other buckets untouched, while the same delta is rejected in 
`BUCKET_UNAWARE` mode.
   - Updated callers in `IndexFileHandlerTest`, `CommitScannerTest`, 
`ExpireSnapshotsTest`,
     `FileSystemWriteRestoreTest` and `OrphanFilesCleanerTest`.
   
   Verified on Ubuntu 24.04 (aarch64), GCC 14, Debug: the affected suites pass 
(40 tests) and the
   full `ctest` run passes (32/32).
   
   ### API and Format
   
   No public API change (only internal headers under `src/`). No storage format 
or protocol change.
   
   ### Documentation
   
   No.
   
   ### Generative AI tooling
   
   Generated-by: Claude Code (Claude Opus 5.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