TheNeuralBit commented on a change in pull request #13671:
URL: https://github.com/apache/beam/pull/13671#discussion_r554212074



##########
File path: 
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/ConvertHelpers.java
##########
@@ -78,12 +83,15 @@ public ConvertedSchemaInformation(
   public static <T> ConvertedSchemaInformation<T> 
getConvertedSchemaInformation(
       Schema inputSchema, TypeDescriptor<T> outputType, SchemaRegistry 
schemaRegistry) {
     ConvertedSchemaInformation<T> convertedSchema = null;
-    boolean toRow = outputType.equals(TypeDescriptor.of(Row.class));
-    if (toRow) {
+    if (outputType.equals(TypeDescriptor.of(Row.class))) {
       // If the output is of type Row, then just forward the schema of the 
input type to the
       // output.
       convertedSchema =
           new ConvertedSchemaInformation<>((SchemaCoder<T>) 
SchemaCoder.of(inputSchema), null);
+    } else if (outputType.equals(TypeDescriptor.of(GenericRecord.class))) {
+      convertedSchema =
+          new ConvertedSchemaInformation<T>(
+              (SchemaCoder<T>) 
AvroUtils.schemaCoder(AvroUtils.toAvroSchema(inputSchema)), null);

Review comment:
       Hm it seems like this should be generalized somehow so we don't need to 
have if blocks for converting to every "dynamic" class. For example we might 
want something similar for protobuf's DynamicMessage. Something pluggable like 
SchemaProvider, but for making conversions to/from other dynamic row types.
   
   This is fine for now, but maybe drop a TODO and jira about generalizing?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to