apache / apache/paimon-cpp

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

Abierto
#316 0 comentarios 0 reacciones 1 asignado Reclamado por @lxy-9602 Ver en GitHub
enhancement
Lenguaje dominante
C++
Estrellas
65
Forks
25
Merge medio
2 d 12 h
PR fusionados (30 d)
80

Descripción

### 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!

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.