wangyong9999 opened a new pull request, #315: URL: https://github.com/apache/paimon-cpp/pull/315
### Purpose Closes #313. Add optional Lance file-format support aligned with Apache Paimon Java and Lance 0.39.0. - add a Corrosion-based Rust FFI plugin for direct Lance reads and writes; - support projection, missing-column null filling, empty projection, exact bitmap selection, and file row IDs; - integrate row counts, schema validation, compaction, data evolution, deletion vectors, and VECTOR columns; - translate canonical and Java/Python-compatible S3 options plus Paimon OSS options, with `lance.storage.*` as the explicit override; - keep Lance disabled by default and enable it in CI. ### Tests - GCC 8 Debug build with `PAIMON_ENABLE_LANCE=ON` - full CTest suite: 30/30 targets passed - Lance unit tests: 8/8 passed - Rust `cargo test --locked`: 1/1 passed - Rust `cargo fmt --check` and `cargo clippy -- -D warnings` - all pre-commit hooks - source archive layout and Apache RAT validation - installed shared-plugin consumer smoke test - Java 0.39.0 -> C++ fixture read - C++ -> Java 0.39.0 direct read; the reciprocal files have the same SHA-256 ### API and Format This adds the optional `lance` file-format factory and the `PAIMON_ENABLE_LANCE` CMake option. It writes the same Lance 0.39.0 default file encoding as the Java implementation and does not change existing public APIs. As in the Java implementation, Lance does not provide predicate pushdown or per-column min/max/null-count statistics. Lance 0.39.0 default v2.0 files also do not preserve nullable STRUCT parent validity; supported nested ROW values and nullable children are covered separately. ### Documentation Updated the build and architecture documentation for the optional Lance component, its toolchain requirements, installed shared target, and object-store option mapping. ### Generative AI tooling Generated-by: Trae IDE (build 3a832493b1976d102e45982d0595db063d332341) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
