Background
column_stats currently exposes chrono::NaiveDateTime through public table methods while storing timestamp keys as i64 nanoseconds. Stored values also include structured statistics where structured::Element::DateTime is already Jiff-backed.
This implementation should migrate the public/API and internal conversion surfaces to Jiff while preserving the existing stored key contract.
Prerequisites
column_stats timestamp contract baseline has landed.
- Any old-format fixture needed by the touched
column_stats surface exists before production type changes are made.
Scope
- Migrate public
column_stats methods that accept or return chrono::NaiveDateTime.
- Preserve the internal
i64 nanoseconds key layout.
- Migrate
Statistics.batch_ts as needed.
- Preserve
load_rounds_by_cluster seek/pagination behavior.
- Keep
structured::Element::DateTime handling compatible with the existing Jiff-backed structured value behavior.
Acceptance criteria
- Existing
column_stats baseline fixtures continue to pass.
- The same logical timestamp produces the same stored key bytes.
- Query, seek, pagination, and purge behavior affected by timestamp ordering remain covered by tests.
- Public/API impact is visible in tests or compile checks.
- Any remaining chrono usage in the touched
column_stats surface is removed or explicitly justified as compatibility code.
Out of scope
- Event key migration.
- Stored bincode table value migrations outside
column_stats.
- Final chrono dependency cleanup.
Notes
Related discussion: #733
Background
column_statscurrently exposeschrono::NaiveDateTimethrough public table methods while storing timestamp keys asi64nanoseconds. Stored values also include structured statistics wherestructured::Element::DateTimeis already Jiff-backed.This implementation should migrate the public/API and internal conversion surfaces to Jiff while preserving the existing stored key contract.
Prerequisites
column_statstimestamp contract baseline has landed.column_statssurface exists before production type changes are made.Scope
column_statsmethods that accept or returnchrono::NaiveDateTime.i64nanoseconds key layout.Statistics.batch_tsas needed.load_rounds_by_clusterseek/pagination behavior.structured::Element::DateTimehandling compatible with the existing Jiff-backed structured value behavior.Acceptance criteria
column_statsbaseline fixtures continue to pass.column_statssurface is removed or explicitly justified as compatibility code.Out of scope
column_stats.Notes
Related discussion: #733