wzx140 commented on code in PR #5629:
URL: https://github.com/apache/hudi/pull/5629#discussion_r903762871
##########
hudi-common/src/main/java/org/apache/hudi/avro/HoodieAvroUtils.java:
##########
@@ -436,14 +444,18 @@ public static GenericRecord removeFields(GenericRecord
record, List<String> fiel
private static void copyOldValueOrSetDefault(GenericRecord oldRecord,
GenericRecord newRecord, Schema.Field field) {
Schema oldSchema = oldRecord.getSchema();
- Object fieldValue = oldSchema.getField(field.name()) == null ? null :
oldRecord.get(field.name());
+ Field oldSchemaField = oldSchema.getField(field.name());
+ Object fieldValue = oldSchemaField == null ? null :
oldRecord.get(field.name());
if (fieldValue != null) {
// In case field's value is a nested record, we have to rewrite it as
well
Object newFieldValue;
if (fieldValue instanceof GenericRecord) {
GenericRecord record = (GenericRecord) fieldValue;
- newFieldValue = rewriteRecord(record,
resolveUnionSchema(field.schema(), record.getSchema().getFullName()));
+ // May return null when use rewrite
+ String recordFullName = record.getSchema().getFullName();
+ String fullName = recordFullName != null ? recordFullName :
oldSchemaField.name();
+ newFieldValue = rewriteRecord(record,
resolveUnionSchema(field.schema(), fullName));
Review Comment:
This unexpected situation is caused by changing
org.apache.hudi.table.action.commit.AbstractMergeHelper#transformRecordBasedOnNewSchema
to org.apache.hudi.common.model.HoodieRecord#rewriteRecord. Maybe
org.apache.hudi.avro.HoodieAvroUtils#rewriteRecord cause fullName null.
--
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]