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]