AvroSchemaUtil.convert necessarily has breaking changes when we add support
for new types, in the past we have
just changed the class when necessary and ignored the resulting behavior
change. Is this a pattern we are ok with
continuing?

My gut answer here is yes. The old behavior is a bug and as long as we
don't break any internal code by adding
the new transform we are fine. We also shouldn't preserve legacy behaviors
that we think are incorrect.

There was a request on the PR to preserve this behavior in the API via a
parameter so outside consumers
can continue to use the old behavior but I don't really feel like that's a
responsibility of the Iceberg project. I
want to make sure I'm not ignoring any voices though so if you have strong
feelings please let us know.

The PR for LocalTimestamp Support:
#17196 <https://github.com/apache/iceberg/pull/17196>


*Previously*local-timestamp-micros => Long


*Now:*local-timestamp-micros => TimestampType.withoutZone()

Prior Art with Nano Timestamp
#12455 <https://github.com/apache/iceberg/pull/12455>


*Before Pr *NanoTimestamp => Long


*After PR*NanoTimestamp => TimestampNanoType

Reply via email to