[Feature] Support Vortex file format
- 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
Apache Paimon Java supports Vortex through the paimon-vortex module, a Rust-based columnar file format with extensible compression encodings and lazily loaded summary statistics. Paimon C++ cannot currently access tables using this format.
### Solution
Add Vortex support to the Paimon C++ file-format SPI:
- Register the vortex file-format factory.
- Implement compatible schema, reader, and writer handling.
- Support column projection, predicate pushdown, and precise row selection.
- Validate the same supported and unsupported logical types as Java.
- Add C++ round-trip tests and Java-produced file compatibility tests.
### Anything else?
Vortex is implemented in Rust, so the integration can follow the Mosaic Rust FFI patterns (#238).
Java reference module: https://github.com/apache/paimon/tree/master/paimon-vortex
### Are you willing to submit a PR?
- [x] I'm willing to submit a PR!
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par lire le module de référence Java dans paimon-vortex ainsi que les patterns Mosaic Rust FFI dans l’issue #238. Faites correspondre les exigences de la SPI de format de fichier C++ au comportement demandé pour le schéma, le lecteur, l’écrivain, la projection, le prédicat et la sélection de lignes. Le travail est terminé lorsque les tests round-trip C++ et les tests de compatibilité avec les fichiers produits par Java couvrent les types logiques pris en charge et non pris en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- 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
- 35/100