JingsongLi opened a new pull request, #458: URL: https://github.com/apache/paimon-rust/pull/458
## Summary Adds Java-compatible `VARIANT` support to the Rust implementation and registers Spark-style Variant scalar functions in the DataFusion integration. This covers the end-to-end path from schema type handling and row/Arrow encoding to SQL JSON parsing and path extraction. ## Changes - Add Paimon `VARIANT` type support, including schema JSON fixtures, Datum support, BinaryRow/BTree encoding, Arrow mapping, and row-format read/write handling for `value` + `metadata` buffers. - Add a Java-compatible Variant core module for JSON parsing, metadata dictionary construction, path access, JSON null handling, and scalar extraction/casting. - Register DataFusion scalar UDFs: `parse_json`, `try_parse_json`, `variant_get`, `try_variant_get`, and `is_variant_null`. - Document Variant table creation, inserts, queries, path syntax, supported cast targets, null semantics, raw `SessionContext` registration, and current limitations. ## Testing - [x] `cargo test -p paimon variant --lib` - [x] `cargo test -p paimon-datafusion variant_functions --lib` - [x] `cargo check -p paimon-datafusion` - [x] `cargo check --workspace` - [x] `git diff --check` - [x] `mkdocs build --strict` ## Notes This PR implements the common scalar-function surface first. `schema_of_variant`, `schema_of_variant_agg`, `to_variant_object`, `variant_explode`, `variant_explode_outer`, and direct `variant_get` casts to `ARRAY` / `MAP` / `STRUCT` are left for follow-up work. -- 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]
