fresh-borzoni opened a new pull request, #175: URL: https://github.com/apache/fluss-rust/pull/175
Closes https://github.com/apache/fluss-rust/issues/130 Continuation of https://github.com/apache/fluss-rust/pull/144 ## Summary Completes support for all basic data types (DATE, TIME, TIMESTAMP_NTZ, TIMESTAMP_LTZ, DECIMAL) in CompactedRow format and key encoding path **1. Migrated to `bigdecimal` (from `rust_decimal`)** - **Why**: Fluss schema supports DECIMAL up to 38 digits; `rust_decimal` is limited to 28 digits - Matches Java's `BigDecimal` behavior: arbitrary precision, HALF_UP rounding, trailing-zero stripping **2. Implemented Temporal Types** - DATE: i32 days since epoch - TIME: i32 milliseconds since midnight (precision metadata only, not in wire format) - TIMESTAMP_NTZ/LTZ: Compact (≤3 precision) vs non-compact (>3 precision) encoding - Compact: milliseconds only (i64 varint) - Non-compact: milliseconds + nanoOfMillisecond (i64 + i32 varint) **3. Decimal Encoding** - Compact (precision ≤18): i64 varint - Non-compact (precision >18): big-endian byte array - Two-step validation: rescale with HALF_UP → validate precision -- 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]
