Skip to content

Commit f7d911a

Browse files
committed
fix(RecordAssembler): optimize field creation using Accessor
1 parent daef2e2 commit f7d911a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

core/src/main/java/kafka/automq/table/process/RecordAssembler.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package kafka.automq.table.process;
2121

22+
import org.apache.avro.util.internal.Accessor;
2223
import org.apache.kafka.common.cache.LRUCache;
2324

2425
import org.apache.avro.JsonProperties;
@@ -145,7 +146,9 @@ private AssemblerSchema buildFinalAssemblerSchema() {
145146
List<Schema.Field> finalFields = new ArrayList<>(baseRecord.getSchema().getFields().size() + 3);
146147
Schema baseSchema = baseRecord.getSchema();
147148
for (Schema.Field field : baseSchema.getFields()) {
148-
finalFields.add(new Schema.Field(field, field.schema()));
149+
// Accessor keeps the original Schema instance (preserving logical types) while skipping default-value revalidation.
150+
Schema.Field f = Accessor.createField(field.name(), field.schema(), field.doc(), Accessor.defaultValue(field), false, field.order());
151+
finalFields.add(f);
149152
}
150153

151154
int baseFieldCount = baseSchema.getFields().size();

0 commit comments

Comments
 (0)