You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scope reviewed: Manifest partition Avro typing with logicalTypetime-micros, partition datum values and statistics as microsecond long; Iceberg schema mapping time → DataTypeTime64(6); Parquet logical TIME (micros/nanos) with datetime_multiplier; Avro logical TIME_MILLIS / TIME_MICROS mapped to Time64; Iceberg export rejection of Time64 scale above 6 in metadata path.
Categories failed: (none).
Categories passed: multiplier/scale alignment (CH Time seconds → Iceberg/Parquet µs); Time physical Int32 vs logical TypeIndex::Time dispatch in Parquet writer; nullable partition/stats reasoning; overflow sanity for time-of-day µs range; static-only review of format paths (no new shared-state concurrency in diff).
Assumptions/limits: Static audit of the fetched branch diff only; no local build or CI run recorded here. Display change (seconds integer → HH:MM:SS.ffffff) is a documented user-visible behavior change, not logged as a defect.
Expanded review notes (methodology snapshot)
Call graph (in scope)
Read: Iceberg type time → SchemaProcessor::getSimpleType → DataTypeTime64(6); Avro schema reader maps time-micros / time-millis to DataTypeTime64.
Write Parquet:preparePrimitiveColumn emits INT64 + TIME logical type; Write.cpp applies ConverterTime / ConverterTime64WithMultiplier with multipliers from column scale.
Write Iceberg manifests:extendSchemaForPartitions embeds Avro field type object with logicalType when applicable; generateManifestFile writes partition time values via getTimeValueInMicroseconds before the generic Field switch; dumpFieldToBytes aligns stats with microseconds.
Invariant
Iceberg time is microseconds since midnight end-to-end for partition metadata, bounds, and parquet logical time for the tested paths; CH Time internal seconds are converted at boundaries.
Fault categories exercised (logical)
Malformed non-spec Avro pairs, scale > 6 for Iceberg, nanos Parquet branch vs Iceberg limits, null partition values — no code defect confirmed for spec-conformant inputs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Support for 'time' type in Iceberg, read and write.
Documentation entry for user-facing changes
Solved #1535
This changes time format,.
Was - seconds from midnight:
Now - time with microseconds
CI/CD Options
Exclude tests:
Regression jobs to run: