The GitHub Actions job "CI" on iceberg-rust.git/feat/datafusion-timestamp-scalar-conversion has succeeded. Run started by GitHub user viirya (triggered by viirya).
Head commit for run: fa03b84413245fbc336983ff6da9f9d8aa63dd91 / Liang-Chi Hsieh <[email protected]> feat(datafusion): Add Timestamp scalar value conversion for predicate pushdown Add support for converting DataFusion Timestamp scalar values to Iceberg Datum for predicate pushdown. This enables timestamp literal comparisons to be pushed down to the storage layer when DataFusion provides timestamp literals in ScalarValue form, improving query performance. Changes: - Add conversion for all four timestamp time units (Second, Millisecond, Microsecond, Nanosecond) to Iceberg's native microsecond representation - Convert timestamps to Datum::timestamp_micros with appropriate scaling: * TimestampSecond: multiply by 1,000,000 * TimestampMillisecond: multiply by 1,000 * TimestampMicrosecond: use directly * TimestampNanosecond: divide by 1,000 (truncates sub-microsecond precision) - Add comprehensive unit tests covering all time units and edge cases - Add sqllogictest (timestamp_predicate_pushdown.slt) to validate end-to-end timestamp predicate filtering and pushdown behavior - Create test_timestamp_table in sqllogictest engine setup - Update show_tables.slt to include test_timestamp_table Implementation details: - Iceberg uses microseconds as the native timestamp representation - Nanosecond timestamps lose sub-microsecond precision when converted - Timezone information in ScalarValue is preserved but not used in conversion (Iceberg timestamp type is timezone-agnostic) - Currently DataFusion casts timestamp literals to strings in predicates, but this implementation provides the foundation for direct timestamp literal support when DataFusion evolves to provide timestamp ScalarValues Co-Authored-By: Claude Sonnet 4.5 <[email protected]> Report URL: https://github.com/apache/iceberg-rust/actions/runs/21350300412 With regards, GitHub Actions via GitBox
