The GitHub Actions job "CI" on 
iceberg-rust.git/feat/datafusion-timestamp-scalar-conversion has failed.
Run started by GitHub user viirya (triggered by viirya).

Head commit for run:
b64d4474d4443ecaaf63c702665c1016b0a29aa3 / 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/21348985519

With regards,
GitHub Actions via GitBox

Reply via email to