kinolaev commented on code in PR #17196:
URL: https://github.com/apache/iceberg/pull/17196#discussion_r3596446381
##########
core/src/main/java/org/apache/iceberg/avro/TypeToSchema.java:
##########
@@ -43,30 +43,55 @@ abstract class TypeToSchema extends
TypeUtil.SchemaVisitor<Schema> {
private static final Schema TIME_SCHEMA =
LogicalTypes.timeMicros().addToSchema(Schema.create(Schema.Type.LONG));
private static final Schema TIMESTAMP_SCHEMA =
-
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
+
LogicalTypes.localTimestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
private static final Schema TIMESTAMPTZ_SCHEMA =
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
private static final Schema TIMESTAMP_NANO_SCHEMA =
-
LogicalTypes.timestampNanos().addToSchema(Schema.create(Schema.Type.LONG));
+
LogicalTypes.localTimestampNanos().addToSchema(Schema.create(Schema.Type.LONG));
private static final Schema TIMESTAMPTZ_NANO_SCHEMA =
LogicalTypes.timestampNanos().addToSchema(Schema.create(Schema.Type.LONG));
private static final Schema STRING_SCHEMA =
Schema.create(Schema.Type.STRING);
private static final Schema UUID_SCHEMA =
LogicalTypes.uuid().addToSchema(Schema.createFixed("uuid_fixed", null,
null, 16));
private static final Schema BINARY_SCHEMA = Schema.create(Schema.Type.BYTES);
+ private static final Schema LEGACY_TIMESTAMP_SCHEMA =
+
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
+ private static final Schema LEGACY_TIMESTAMPTZ_SCHEMA =
+
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
+ private static final Schema LEGACY_TIMESTAMP_NANO_SCHEMA =
+
LogicalTypes.timestampNanos().addToSchema(Schema.create(Schema.Type.LONG));
+ private static final Schema LEGACY_TIMESTAMPTZ_NANO_SCHEMA =
+
LogicalTypes.timestampNanos().addToSchema(Schema.create(Schema.Type.LONG));
+
static {
- TIMESTAMP_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP, false);
- TIMESTAMPTZ_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP, true);
- TIMESTAMP_NANO_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP, false);
- TIMESTAMPTZ_NANO_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP, true);
+ LEGACY_TIMESTAMP_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP, false);
+ LEGACY_TIMESTAMPTZ_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP, true);
+ LEGACY_TIMESTAMP_NANO_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP,
false);
+ LEGACY_TIMESTAMPTZ_NANO_SCHEMA.addProp(AvroSchemaUtil.ADJUST_TO_UTC_PROP,
true);
}
private final Deque<Integer> fieldIds = Lists.newLinkedList();
private final BiFunction<Integer, Types.StructType, String> namesFunction;
+ private final Schema timestampSchema;
+ private final Schema timestampTzSchema;
+ private final Schema timestampNanoSchema;
+ private final Schema timestampTzNanoSchema;
- TypeToSchema(BiFunction<Integer, Types.StructType, String> namesFunction) {
+ TypeToSchema(
+ BiFunction<Integer, Types.StructType, String> namesFunction, boolean
legacyTimestampMapping) {
this.namesFunction = namesFunction;
+ if (legacyTimestampMapping) {
+ timestampSchema = LEGACY_TIMESTAMP_SCHEMA;
Review Comment:
Moved from the constructor (0661934486e5bd0b7e405abbeca4dbec97ff78d0)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]