Search before asking
Paimon version
master (1.5-SNAPSHOT)
Compute Engine
Any engine writing an append or bucketed-append table with deletion vectors.
Minimal reproduce step
- Create an append table with deletion vectors and write some deletes, stored as bitmap32 (the default).
ALTER TABLE t SET ('deletion-vectors.bitmap64' = 'true').
- Delete more rows on a data file that already has a stored bitmap32 deletion vector.
What doesn't meet your expectations?
The delete crashes with RuntimeException: Only instance with the same class type can be merged.. deletion-vectors.bitmap64 is not an immutable option, so it can be flipped on a table that already has deletion vectors. After the flip, a freshly created deletion vector (bitmap64) has to merge with the stored one (bitmap32), and Bitmap64DeletionVector.merge / BitmapDeletionVector.merge reject a different class. The reverse flip (bitmap64 back to false, stored bitmap64 + fresh bitmap32) crashes the same way. Both the unaware-append and bucketed-append maintainers are affected.
Anything else?
Deletion vectors are deserialized by magic number, so bitmap32 and bitmap64 vectors already coexist in one index file; merging across the two formats just needs to promote the narrower one first.
Are you willing to submit a PR?
Search before asking
Paimon version
master (1.5-SNAPSHOT)
Compute Engine
Any engine writing an append or bucketed-append table with deletion vectors.
Minimal reproduce step
ALTER TABLE t SET ('deletion-vectors.bitmap64' = 'true').What doesn't meet your expectations?
The delete crashes with
RuntimeException: Only instance with the same class type can be merged..deletion-vectors.bitmap64is not an immutable option, so it can be flipped on a table that already has deletion vectors. After the flip, a freshly created deletion vector (bitmap64) has to merge with the stored one (bitmap32), andBitmap64DeletionVector.merge/BitmapDeletionVector.mergereject a different class. The reverse flip (bitmap64 back to false, stored bitmap64 + fresh bitmap32) crashes the same way. Both the unaware-append and bucketed-append maintainers are affected.Anything else?
Deletion vectors are deserialized by magic number, so bitmap32 and bitmap64 vectors already coexist in one index file; merging across the two formats just needs to promote the narrower one first.
Are you willing to submit a PR?