apache / apache/paimon-cpp

[Feature] Support Lance file format

Cerrado
#313 1 comentario 0 reacciones 0 asignados Ver en GitHub
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

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!

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza leyendo la integración existente de Mosaic Rust FFI y los patrones de ciclo de vida; después compara el módulo de referencia de Java en paimon-lance e inspecciona las interfaces existentes de formatos de archivo. Se considera terminado cuando una integración opcional de CMake, deshabilitada de forma predeterminada, admita lecturas y escrituras de Lance, las proyecciones y la selección de filas requeridas, los metadatos de fila, la validación de tipos lógicos, pruebas de round-trip y fixtures de compatibilidad entre Java/C++.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cmake, cpp, java, rust
Área
data-engineering, databases
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.