apache / apache/paimon-cpp

[Feature] Support Lance file format

Fermée
#313 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C++
Étoiles
65
Forks
25
Merge moyen
2 j 9 h
PR mergées (30 j)
82

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par lire l’intégration existante de Mosaic Rust FFI et les modèles de cycle de vie, puis comparez le module de référence Java dans paimon-lance et examinez les interfaces existantes de format de fichier. Le travail est considéré comme terminé lorsqu’une intégration CMake optionnelle, désactivée par défaut, prend en charge les lectures et écritures Lance, les projections et la sélection de lignes requises, les métadonnées de ligne, la validation des types logiques, les tests round-trip et les fixtures de compatibilité Java/C++.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cmake, cpp, java, rust
Domaine
data-engineering, databases
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

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