Shekharrajak opened a new pull request, #2538: URL: https://github.com/apache/fluss/pull/2538
### Purpose
<!-- Linking this pull request to the issue -->
Linked issue: Ref https://github.com/apache/fluss/issues/2536
<!-- What is the purpose of the change -->
Add foundation type system support for Iceberg V3 nanosecond timestamp
types. This is the first step toward full Iceberg V3 support in Fluss, enabling
storage of timestamps with
nanosecond precision as required by the V3 specification.
### Brief change log
- Add `TIMESTAMP_NANO_WITHOUT_TIME_ZONE` and
`TIMESTAMP_NANO_WITH_LOCAL_TIME_ZONE` to `DataTypeRoot` enum
- Add `TimestampNanoType` class for timestamps without timezone (stored as
64-bit nanoseconds from epoch)
- Add `LocalZonedTimestampNanoType` class for timestamps with local
timezone
- Update `DataTypeVisitor` and `DataTypeDefaultVisitor` with new visit
methods
- Add `TIMESTAMP_NS()` and `TIMESTAMP_NS_LTZ()` factory methods to
`DataTypes`
- Add Iceberg type conversion in `FlussDataTypeToIcebergDataType` mapping
to `Types.TimestampNanoType`
### Tests
- `DataTypesTest#testTimestampNanoType` - Validates type creation,
nullability, serialization, and type family membership
- `DataTypesTest#testLocalZonedTimestampNanoType` - Validates timezone
variant with same coverage
- Existing `IcebergTieringTest` passes with new type converter methods
### API and Format
- **API**: Adds new public types `TimestampNanoType` and
`LocalZonedTimestampNanoType` to the type system
- **Format**: No storage format changes in this PR. Types will be used
when V3 table support is enabled.
--
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]
