voonhous commented on code in PR #17581:
URL: https://github.com/apache/hudi/pull/17581#discussion_r2625689617


##########
hudi-hadoop-mr/src/main/java/org/apache/hudi/hadoop/utils/HiveAvroSerializer.java:
##########
@@ -339,48 +345,48 @@ protected GenericEnumSymbol makeInstance(Object seed, 
Set<Object> seenSchemas) {
     }
   };
 
-  private Object serializeEnum(PrimitiveObjectInspector fieldOI, Object 
structFieldData, Schema schema) throws HoodieException {
+  private Object serializeEnum(PrimitiveObjectInspector fieldOI, Object 
structFieldData, HoodieSchema schema) throws HoodieException {
     try {
-      return enums.retrieve(schema).retrieve(serializePrimitive(fieldOI, 
structFieldData, schema));
+      return 
enums.retrieve(schema.toAvroSchema()).retrieve(serializePrimitive(fieldOI, 
structFieldData, schema));
     } catch (Exception e) {
       throw new HoodieException(e);
     }
   }
 
-  private Object serializeStruct(StructTypeInfo typeInfo, 
StructObjectInspector ssoi, Object o, Schema schema) {
+  private Object serializeStruct(StructTypeInfo typeInfo, 
StructObjectInspector ssoi, Object o, HoodieSchema schema) {
     int size = schema.getFields().size();
     List<? extends StructField> allStructFieldRefs = 
ssoi.getAllStructFieldRefs();
     List<Object> structFieldsDataAsList = ssoi.getStructFieldsDataAsList(o);
-    GenericData.Record record = new GenericData.Record(schema);
+    GenericData.Record record = new GenericData.Record(schema.toAvroSchema());
     ArrayList<TypeInfo> allStructFieldTypeInfos = 
typeInfo.getAllStructFieldTypeInfos();
 
     for (int i = 0; i < size; i++) {
-      Schema.Field field = schema.getFields().get(i);
+      HoodieSchemaField field = schema.getFields().get(i);
       setUpRecordFieldFromWritable(allStructFieldTypeInfos.get(i), 
structFieldsDataAsList.get(i),
           allStructFieldRefs.get(i).getFieldObjectInspector(), record, field);
     }
     return record;
   }
 
-  private Object serializePrimitive(PrimitiveObjectInspector fieldOI, Object 
structFieldData, Schema schema) throws HoodieException {
+  private Object serializePrimitive(PrimitiveObjectInspector fieldOI, Object 
structFieldData, HoodieSchema schema) throws HoodieException {
     switch (fieldOI.getPrimitiveCategory()) {
       case BINARY:
-        if (schema.getType() == Schema.Type.BYTES) {
+        if (schema.getType() == HoodieSchemaType.BYTES) {
           return AvroSerdeUtils.getBufferFromBytes((byte[]) 
fieldOI.getPrimitiveJavaObject(structFieldData));
-        } else if (schema.getType() == Schema.Type.FIXED) {
-          GenericData.Fixed fixed = new GenericData.Fixed(schema, (byte[]) 
fieldOI.getPrimitiveJavaObject(structFieldData));
+        } else if (schema.getType() == HoodieSchemaType.FIXED) {
+          GenericData.Fixed fixed = new 
GenericData.Fixed(schema.toAvroSchema(), (byte[]) 
fieldOI.getPrimitiveJavaObject(structFieldData));
           return fixed;
         } else {
           throw new HoodieException("Unexpected Avro schema for Binary 
TypeInfo: " + schema.getType());
         }
       case DECIMAL:
         HiveDecimal dec = (HiveDecimal) 
fieldOI.getPrimitiveJavaObject(structFieldData);
-        LogicalTypes.Decimal decimal = (LogicalTypes.Decimal) 
schema.getLogicalType();
+        HoodieSchema.Decimal decimal = (HoodieSchema.Decimal) schema;
         BigDecimal bd = new 
BigDecimal(dec.toString()).setScale(decimal.getScale());
-        if (schema.getType() == Schema.Type.BYTES) {
-          return HoodieAvroUtils.DECIMAL_CONVERSION.toBytes(bd, schema, 
decimal);
+        if (schema.getType() == HoodieSchemaType.BYTES) {

Review Comment:
   Yes, added.



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

Reply via email to