apache / apache/paimon-cpp

[Feature] Support 64-bit deletion vectors in Paimon C++

Open
#325 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
65
Forks
25
Avg merge
2d 12h
Merged PRs (30d)
80

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/paimon-cpp/issues) and found nothing similar.

### Motivation

### Motivation

Java Paimon supports both 32-bit and 64-bit deletion vectors through:

```properties
deletion-vectors.enabled=true
deletion-vectors.bitmap64=true

Paimon C++ currently exposes the deletion-vectors.bitmap64 option, but bitmap64 deletion vectors are not implemented:
- include/paimon/defs.h marks bitmap64 DV as unsupported.
- DeletionVector::Read recognizes the bitmap64 magic number but returns NotImplemented.
- Only BitmapDeletionVector, backed by RoaringBitmap32, is currently used for deletion-vector reads and writes.
As a result, Paimon C++ cannot read tables containing bitmap64 deletion vectors produced by Java Paimon, and cannot produce Iceberg-compatible deletion vectors.

### Solution

_No response_

### Anything else?

_No response_

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start by tracing deletion-vector handling through include/paimon/defs.h and DeletionVector::Read, then inspect BitmapDeletionVector and its RoaringBitmap32 read/write path. Compare the existing bitmap32 behavior with the bitmap64 magic number and the Java Paimon properties described in the issue. Done means Paimon C++ can read Java-produced bitmap64 deletion vectors and produce Iceberg-compatible ones.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.