diff --git a/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/InternalSchemaChangeApplier.java b/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/InternalSchemaChangeApplier.java index c84d2fa23972a..36aac462a137e 100644 --- a/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/InternalSchemaChangeApplier.java +++ b/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/InternalSchemaChangeApplier.java @@ -51,7 +51,8 @@ public InternalSchema applyAddChange( TableChange.ColumnPositionChange.ColumnPositionType positionType) { TableChanges.ColumnAddChange add = TableChanges.ColumnAddChange.get(latestSchema); String parentName = TableChangesHelper.getParentName(colName); - add.addColumns(parentName, colName, colType, doc); + String leafName = TableChangesHelper.getLeafName(colName); + add.addColumns(parentName, leafName, colType, doc); if (positionType != null) { switch (positionType) { case NO_OPERATION: diff --git a/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/TableChangesHelper.java b/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/TableChangesHelper.java index d38c83d220bf2..80b9c6298dd89 100644 --- a/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/TableChangesHelper.java +++ b/hudi-common/src/main/java/org/apache/hudi/internal/schema/action/TableChangesHelper.java @@ -76,4 +76,9 @@ public static String getParentName(String fullColName) { int offset = fullColName.lastIndexOf("."); return offset > 0 ? fullColName.substring(0, offset) : ""; } + + public static String getLeafName(String fullColName) { + int offset = fullColName.lastIndexOf("."); + return offset > 0 ? fullColName.substring(offset + 1) : fullColName; + } }