Skip to content

Conversation

@kryvashek
Copy link
Member

What changes are included in this PR?

This PR adds support for millisecond-based timestamps into Iceberg and related code, included in the repo (catalogs).

Also some tests were fixed in accordance with previously made changes.

Are these changes tested?

Changes are tested with a couple of supplemented accordingly unit tests.

@kryvashek kryvashek self-assigned this Jan 21, 2026
@kryvashek kryvashek changed the title Sakhart/add milliseconds timestamps support Add milliseconds timestamps support Jan 21, 2026
Copy link

@ole-baranov ole-baranov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the request! A few nits from me.

assert_eq!(
err,
"Unexpected => No such table: TableIdent { namespace: NamespaceIdent([\"a\"]), name: \"tbl1\" }"
"TableNotFound => No such table: TableIdent { namespace: NamespaceIdent([\"a\"]), name: \"tbl1\" }"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to refer to some enum here? ErrorKind, maybe?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible to use ErrorKind here, but it will kinda break the idea of the test since this enum is used to produce an error text being checked. In other words it seems somewhat meaningless to check whether the text produced by some routine equals... to the text, produced by that same routine. (=

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Used direct kind asserting, as well as message.

Copy link

@LLDay LLDay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the patch!

/// Time of day in microsecond precision, without date or timezone.
Time,
/// Timestamp in millisecond precision, without timezone
TimestampMs,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This timestamp is not a part of the spec. Do we really need it? Will other iceberg-compatible libraries be able to read our new data type?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We agreed with @ole-baranov to try to force those changes into upstream (and spec therefore).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be discussed in the related thread, I've mentioned both of you there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants