LuciferYang opened a new issue, #10281: URL: https://github.com/apache/paimon/issues/10281
### Search before asking - [X] I searched in the [issues](https://github.com/apache/paimon/issues) and found no similar issues. ### Paimon version master (1.5-SNAPSHOT) ### Compute Engine Any engine writing an append or bucketed-append table with deletion vectors. ### Minimal reproduce step 1. Create an append table with deletion vectors and write some deletes, stored as bitmap32 (the default). 2. `ALTER TABLE t SET ('deletion-vectors.bitmap64' = 'true')`. 3. 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? - [X] I'm willing to submit a PR! -- 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]
