apache / apache/paimon-cpp

[Feature] Reimplement bitmap Global Index for compatibility with Paimon Java

Ouverte
#316 0 commentaires 0 réactions 1 personne assignée Réclamée par @lxy-9602 Voir sur GitHub
enhancement
Langage dominant
C++
Étoiles
65
Forks
25
Merge moyen
2 j 12 h
PR mergées (30 j)
80

Description

### Search before asking

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

### Motivation

The bitmap Global Index in Paimon Java has undergone a major redesign. The bitmap Global Index currently implemented in Paimon C++ follows the legacy design and file format, so it is no longer compatible with the current Java implementation.

As a result, Paimon C++ cannot reliably read bitmap Global Index files produced by current Paimon Java, and indexes written by the existing C++ implementation are not interoperable with the new Java implementation. The current Paimon C++ documentation therefore marks bitmap Global Index as unsupported.

### Solution

Reimplement bitmap Global Index in Paimon C++ based on the current Paimon Java design and file format. The work should cover:

- The current index reader, writer, and factory behavior.
- Predicate evaluation and null/non-null bitmap semantics.
- Compatibility tests using indexes produced by Paimon Java, together with C++ round-trip tests.
- Cleanup or isolation of the legacy implementation after the new implementation is validated.

I plan to work on this reimplementation and submit a follow-up PR.

### Anything else?

The redesigned Java implementation was introduced in [apache/paimon#8276](https://github.com/apache/paimon/pull/8276) and subsequently integrated with the sorted global-index build path in [apache/paimon#8283](https://github.com/apache/paimon/pull/8283).

### Are you willing to submit a PR?

- [x] I am willing to submit a PR!

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.