apache / apache/paimon-cpp

[Feature] Support Lance file format

Chiusa
#313 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
65
Fork
25
Merge medio
2g 12h
PR unite (30g)
80

Descrizione

### Search before asking

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

### Motivation

Apache Paimon Java supports Lance as a data file format through the paimon-lance module. Paimon C++ currently cannot read or write tables configured with file.format=lance, which prevents Java and C++ engines from interoperating on those tables.

### Solution

Add optional Lance file format support to Paimon C++, aligned with the Java implementation and Lance 0.39.0:

- register a Lance file format factory behind a disabled-by-default CMake option;
- support reading and writing Lance files through the existing file format interfaces;
- support column projection, precise row selection, row counts, and file row-id reporting;
- validate the same supported and unsupported logical types as Java;
- add C++ round-trip tests and Java/C++ compatibility fixtures in both directions.

The implementation should follow the existing Mosaic Rust FFI integration and lifecycle patterns.

### Anything else?

Java reference module: https://github.com/apache/paimon/tree/master/paimon-lance

### Are you willing to submit a PR?

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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia leggendo l’integrazione esistente di Mosaic Rust FFI e i pattern del ciclo di vita, quindi confronta il modulo di riferimento Java in paimon-lance e ispeziona le interfacce esistenti per i formati di file. Il lavoro è completo quando un’integrazione CMake opzionale, disabilitata per impostazione predefinita, supporta letture e scritture Lance, le proiezioni e la selezione delle righe richieste, i metadati delle righe, la validazione dei tipi logici, i test round-trip e le fixture di compatibilità Java/C++.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cmake, cpp, java, rust
Ambito
data-engineering, databases
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.