swapna267 commented on code in PR #18525:
URL: https://github.com/apache/iceberg/pull/18525#discussion_r4418161788
##########
flink/v2.3/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/DynamicRecordInternalSerializer.java:
##########
@@ -96,17 +96,10 @@ public void serialize(DynamicRecordInternal toSerialize,
DataOutputView dataOutp
dataOutputView.writeInt(toSerialize.writerKey());
final RowDataSerializer rowDataSerializer;
if (writeSchemaAndSpec) {
- rowDataSerializer =
- serializerCache.serializer(
- toSerialize.tableName(), toSerialize.schema(),
toSerialize.spec());
+ rowDataSerializer = serializerCache.serializer(toSerialize.tableName(),
toSerialize.schema());
} else {
- // Check that the schema id can be resolved. Not strictly necessary for
serialization.
- Tuple3<RowDataSerializer, Schema, PartitionSpec> serializer =
- serializerCache.serializerWithSchemaAndSpec(
- toSerialize.tableName(),
- toSerialize.schema().schemaId(),
- toSerialize.spec().specId());
- rowDataSerializer = serializer.f0;
+ rowDataSerializer =
+ serializerCache.serializerById(toSerialize.tableName(),
toSerialize.schema());
Review Comment:
Sure, but purpose of that test is to validate that it doesn't fail or depend
on table existence ?
I added this to doc , leaving the responsibility to the caller.
```
The id-keyed serializers are shared with {@link
#serializerWithSchemaAndSpec}, so the schema
must come from the table. Do not use this for user-supplied schemas,
whose ids are not reliable
and could collide with the table's schemas.
```
Is there any reliable way to validate it ?
--
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]