fresh-borzoni opened a new pull request, #330:
URL: https://github.com/apache/fluss-rust/pull/330
## Summary
closes #87
Replace value-copying FFI layer with opaque Rust-backed types for zero-copy
reads and cheaper writes in CPP bindings.
## Changes
- **Opaque types**: replace
`Datum`/`FfiDatum`/`FfiGenericRow`/`FfiScanRecord` copying infrastructure with
three opaque Rust types — `GenericRowInner` (writes), `ScanResultInner` (scan
reads), `LookupResultInner` (lookup reads)
- **Zero-copy reads**: new `RowView` class borrows directly from Rust scan
results; `LookupResult` class replaces `(bool found, GenericRow out)` pattern
- **`ScanRecord` metadata**: add `change_type` and `partition_id` fields,
matching Python client
- **`AppendArrowBatch`**: write Arrow RecordBatch directly via C Data
Interface
- **`custom_properties`**: support custom table properties in
`TableDescriptor` and `TableInfo`
- **`SetLogFormat` / `SetKvFormat`**: convenience builder methods for
table descriptor
- **`TypeId::Char` / `TypeId::Binary`**: new type support with `DataType`
factory methods
- **Rename `DecimalToString` -> `GetDecimalString`**: consistent getter
naming
- **Remove `DatumType` enum and `Datum` struct**: replaced entirely by
`TypeId` and opaque types
- **Name-based getters via CRTP `NamedGetters` mixin**: shared across
`RowView` and `LookupResult`
- **Examples updated**: demonstrate new APIs including Arrow batch writes,
name-based getters, and `LookupResult`
--
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]