From cf39a1c3bf49bdc7be2dd5a4cf67ef416383381f Mon Sep 17 00:00:00 2001 From: Juan Castagno Date: Tue, 27 Jan 2026 10:50:25 +0000 Subject: [PATCH] Fix union type naming in FastSerializerGenerator When generating serializers for arrays or maps containing union types, the code was calling schema.getName() which doesn't work for unions (they don't have names). This caused invalid Java variable names like 'UNION0' to be generated, leading to compilation failures. Changes: - Enhanced SchemaAssistant.getTypeName() to handle UNION types by concatenating branch type names (e.g., 'union_NULL_STRING') - Updated FastSerializerGenerator to use getTypeName() instead of getName() when declaring variables for array elements and map values - Added 5 comprehensive tests covering nullable and multi-type unions in arrays, maps, and records The fix generates valid Java identifiers like: - union_NULL_STRING0 (instead of UNION0) - union_INT_STRING_DOUBLE0 (for multi-type unions) - union_NULL_record0 (for nullable record unions) --- .../FastGenericSerializerGeneratorTest.java | 131 ++++++++++++++++++ ...icDeserializer_1277939469_1277939469.java} | 4 +- ...ericDeserializer_777827233_777827233.java} | 4 +- ...ificDeserializer_971650236_971650236.java} | 4 +- ...icDeserializer_2140000109_2140000109.java} | 4 +- ...icDeserializer_2018567528_1606337179.java} | 4 +- ...ricDeserializer_568621313_1223705675.java} | 4 +- ...icDeserializer_1971822364_1672473580.java} | 4 +- ...NG_DOUBLE_GenericSerializer_895888951.java | 51 +++++++ ...LL_STRING_GenericSerializer_317583799.java | 44 ++++++ ...L_record_GenericSerializer_777827233.java} | 12 +- ...WithEnums_GenericSerializer_496788239.java | 10 +- ...ithFixed_GenericSerializer_1473954146.java | 10 +- ...onsField_GenericSerializer_1348736347.java | 20 +-- ...onsField_GenericSerializer_1813582373.java | 84 +++++------ ...esDefined_GenericSerializer_229156053.java | 12 +- ...sDefined_SpecificSerializer_229156053.java | 12 +- ...pesTest1_GenericSerializer_1007574890.java | 12 +- ...esTest1_SpecificSerializer_1007574890.java | 12 +- ...ndefined_GenericSerializer_1982763418.java | 12 +- ...defined_SpecificSerializer_1982763418.java | 12 +- ...T_STRING_GenericSerializer_2132803162.java | 48 +++++++ ...L_STRING_GenericSerializer_1486935134.java | 46 ++++++ ..._record_GenericSerializer_2140000109.java} | 12 +- ...estRecord_GenericSerializer_331683882.java | 53 +++++++ .../fastserde/FastSerializerGenerator.java | 4 +- .../avro/fastserde/SchemaAssistant.java | 6 + 27 files changed, 505 insertions(+), 126 deletions(-) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{Array_of_UNION_SpecificDeserializer_1277939469_1277939469.java => Array_of_union_NULL_TestRecord_SpecificDeserializer_1277939469_1277939469.java} (99%) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{Array_of_UNION_GenericDeserializer_777827233_777827233.java => Array_of_union_NULL_record_GenericDeserializer_777827233_777827233.java} (95%) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{Map_of_UNION_SpecificDeserializer_971650236_971650236.java => Map_of_union_NULL_TestRecord_SpecificDeserializer_971650236_971650236.java} (99%) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{Map_of_UNION_GenericDeserializer_2140000109_2140000109.java => Map_of_union_NULL_record_GenericDeserializer_2140000109_2140000109.java} (95%) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{UNION_GenericDeserializer_2018567528_1606337179.java => union_NULL_Array_of_record_GenericDeserializer_2018567528_1606337179.java} (93%) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{UNION_GenericDeserializer_568621313_1223705675.java => union_NULL_Map_of_record_GenericDeserializer_568621313_1223705675.java} (92%) rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/{UNION_GenericDeserializer_1971822364_1672473580.java => union_NULL_record_GenericDeserializer_1971822364_1672473580.java} (89%) create mode 100644 fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_INT_STRING_DOUBLE_GenericSerializer_895888951.java create mode 100644 fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_STRING_GenericSerializer_317583799.java rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/{Array_of_UNION_GenericSerializer_777827233.java => Array_of_union_NULL_record_GenericSerializer_777827233.java} (76%) create mode 100644 fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_INT_STRING_GenericSerializer_2132803162.java create mode 100644 fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_STRING_GenericSerializer_1486935134.java rename fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/{Map_of_UNION_GenericSerializer_2140000109.java => Map_of_union_NULL_record_GenericSerializer_2140000109.java} (77%) create mode 100644 fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/TestRecord_GenericSerializer_331683882.java diff --git a/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java index d648b5065..1f8332511 100644 --- a/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java +++ b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java @@ -442,6 +442,137 @@ record = decodeRecord(recordSchema, dataAsBinaryDecoder(builder)); Assert.assertEquals(1, record.get("union")); } + @Test(groups = {"serializationTest"}) + public void shouldWriteArrayOfUnionPrimitives() { + // given - this tests the fix for the bug where union types in arrays + // caused invalid Java variable names to be generated (e.g., "union[null, string]0") + Schema unionSchema = Schema.createUnion(Arrays.asList( + Schema.create(Schema.Type.NULL), + Schema.create(Schema.Type.STRING) + )); + Schema arrayOfUnionSchema = Schema.createArray(unionSchema); + + GenericData.Array unionArray = new GenericData.Array<>(0, arrayOfUnionSchema); + unionArray.add(new Utf8("test1")); + unionArray.add(null); + unionArray.add(new Utf8("test2")); + + // when + List result = decodeRecord(arrayOfUnionSchema, dataAsBinaryDecoder(unionArray)); + + // then + Assert.assertEquals(result.size(), 3); + Assert.assertEquals(result.get(0).toString(), "test1"); + Assert.assertNull(result.get(1)); + Assert.assertEquals(result.get(2).toString(), "test2"); + } + + @Test(groups = {"serializationTest"}) + public void shouldWriteMapOfUnionPrimitives() { + // given - this tests the fix for the bug where union types in map values + // caused invalid Java variable names to be generated + Schema unionSchema = Schema.createUnion(Arrays.asList( + Schema.create(Schema.Type.NULL), + Schema.create(Schema.Type.STRING) + )); + Schema mapOfUnionSchema = Schema.createMap(unionSchema); + + Map unionMap = new HashMap<>(); + unionMap.put("key1", new Utf8("value1")); + unionMap.put("key2", null); + unionMap.put("key3", new Utf8("value3")); + + // when + Map result = decodeRecord(mapOfUnionSchema, dataAsBinaryDecoder(unionMap, mapOfUnionSchema)); + + // then + Assert.assertEquals(result.size(), 3); + Assert.assertEquals(result.get(new Utf8("key1")).toString(), "value1"); + Assert.assertNull(result.get(new Utf8("key2"))); + Assert.assertEquals(result.get(new Utf8("key3")).toString(), "value3"); + } + + @Test(groups = {"serializationTest"}) + public void shouldWriteRecordWithArrayOfUnionPrimitives() { + // given - this tests the exact schema that triggered the original bug report + String schemaJson = "{\n" + + " \"type\": \"record\",\n" + + " \"name\": \"TestRecord\",\n" + + " \"namespace\": \"com.linkedin.avro.fastserde.test\",\n" + + " \"fields\": [\n" + + " {\"name\": \"fields\", \"type\": {\"type\": \"array\", \"items\": [\"null\", \"string\"]}}\n" + + " ]\n" + + "}"; + Schema recordSchema = Schema.parse(schemaJson); + + GenericData.Record record = new GenericData.Record(recordSchema); + GenericData.Array fieldsArray = new GenericData.Array<>(0, recordSchema.getField("fields").schema()); + fieldsArray.add(new Utf8("value1")); + fieldsArray.add(null); + fieldsArray.add(new Utf8("value2")); + record.put("fields", fieldsArray); + + // when + GenericRecord result = decodeRecord(recordSchema, dataAsBinaryDecoder(record)); + + // then + @SuppressWarnings("unchecked") + List resultFields = (List) result.get("fields"); + Assert.assertEquals(resultFields.size(), 3); + Assert.assertEquals(resultFields.get(0).toString(), "value1"); + Assert.assertNull(resultFields.get(1)); + Assert.assertEquals(resultFields.get(2).toString(), "value2"); + } + + @Test(groups = {"serializationTest"}) + public void shouldWriteArrayOfMultiTypeUnion() { + // given - this tests multi-type unions (not just nullable) to ensure + // the naming generates valid identifiers like "union_INT_STRING_DOUBLE" + Schema unionSchema = Schema.createUnion(Arrays.asList( + Schema.create(Schema.Type.INT), + Schema.create(Schema.Type.STRING), + Schema.create(Schema.Type.DOUBLE) + )); + Schema arrayOfUnionSchema = Schema.createArray(unionSchema); + + GenericData.Array unionArray = new GenericData.Array<>(0, arrayOfUnionSchema); + unionArray.add(42); + unionArray.add(new Utf8("test")); + unionArray.add(3.14); + + // when + List result = decodeRecord(arrayOfUnionSchema, dataAsBinaryDecoder(unionArray)); + + // then + Assert.assertEquals(result.size(), 3); + Assert.assertEquals(result.get(0), 42); + Assert.assertEquals(result.get(1).toString(), "test"); + Assert.assertEquals((Double) result.get(2), 3.14, 0.0001); + } + + @Test(groups = {"serializationTest"}) + public void shouldWriteMapOfMultiTypeUnion() { + // given - this tests multi-type unions in map values to ensure + // proper variable naming in generated code + Schema unionSchema = Schema.createUnion(Arrays.asList( + Schema.create(Schema.Type.INT), + Schema.create(Schema.Type.STRING) + )); + Schema mapOfUnionSchema = Schema.createMap(unionSchema); + + Map unionMap = new HashMap<>(); + unionMap.put("int_value", 100); + unionMap.put("string_value", new Utf8("hello")); + + // when + Map result = decodeRecord(mapOfUnionSchema, dataAsBinaryDecoder(unionMap, mapOfUnionSchema)); + + // then + Assert.assertEquals(result.size(), 2); + Assert.assertEquals(result.get(new Utf8("int_value")), 100); + Assert.assertEquals(result.get(new Utf8("string_value")).toString(), "hello"); + } + @Test(groups = {"serializationTest"}) public void shouldWriteArrayOfRecords() { // given diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_UNION_SpecificDeserializer_1277939469_1277939469.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_union_NULL_TestRecord_SpecificDeserializer_1277939469_1277939469.java similarity index 99% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_UNION_SpecificDeserializer_1277939469_1277939469.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_union_NULL_TestRecord_SpecificDeserializer_1277939469_1277939469.java index 673539deb..79c8034ea 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_UNION_SpecificDeserializer_1277939469_1277939469.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_union_NULL_TestRecord_SpecificDeserializer_1277939469_1277939469.java @@ -29,13 +29,13 @@ import org.apache.avro.io.Decoder; import org.apache.avro.util.Utf8; -public class Array_of_UNION_SpecificDeserializer_1277939469_1277939469 +public class Array_of_union_NULL_TestRecord_SpecificDeserializer_1277939469_1277939469 implements FastDeserializer> { private final Schema readerSchema; - public Array_of_UNION_SpecificDeserializer_1277939469_1277939469(Schema readerSchema) { + public Array_of_union_NULL_TestRecord_SpecificDeserializer_1277939469_1277939469(Schema readerSchema) { this.readerSchema = readerSchema; } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_UNION_GenericDeserializer_777827233_777827233.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_union_NULL_record_GenericDeserializer_777827233_777827233.java similarity index 95% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_UNION_GenericDeserializer_777827233_777827233.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_union_NULL_record_GenericDeserializer_777827233_777827233.java index 1a58e9437..827835954 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_UNION_GenericDeserializer_777827233_777827233.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Array_of_union_NULL_record_GenericDeserializer_777827233_777827233.java @@ -11,7 +11,7 @@ import org.apache.avro.io.Decoder; import org.apache.avro.util.Utf8; -public class Array_of_UNION_GenericDeserializer_777827233_777827233 +public class Array_of_union_NULL_record_GenericDeserializer_777827233_777827233 implements FastDeserializer> { @@ -20,7 +20,7 @@ public class Array_of_UNION_GenericDeserializer_777827233_777827233 private final Schema arrayElemOptionSchema0; private final Schema field0; - public Array_of_UNION_GenericDeserializer_777827233_777827233(Schema readerSchema) { + public Array_of_union_NULL_record_GenericDeserializer_777827233_777827233(Schema readerSchema) { this.readerSchema = readerSchema; this.arrayArrayElemSchema0 = readerSchema.getElementType(); this.arrayElemOptionSchema0 = arrayArrayElemSchema0 .getTypes().get(1); diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_UNION_SpecificDeserializer_971650236_971650236.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_union_NULL_TestRecord_SpecificDeserializer_971650236_971650236.java similarity index 99% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_UNION_SpecificDeserializer_971650236_971650236.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_union_NULL_TestRecord_SpecificDeserializer_971650236_971650236.java index 01ffaa212..29da7dba2 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_UNION_SpecificDeserializer_971650236_971650236.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_union_NULL_TestRecord_SpecificDeserializer_971650236_971650236.java @@ -29,13 +29,13 @@ import org.apache.avro.io.Decoder; import org.apache.avro.util.Utf8; -public class Map_of_UNION_SpecificDeserializer_971650236_971650236 +public class Map_of_union_NULL_TestRecord_SpecificDeserializer_971650236_971650236 implements FastDeserializer> { private final Schema readerSchema; - public Map_of_UNION_SpecificDeserializer_971650236_971650236(Schema readerSchema) { + public Map_of_union_NULL_TestRecord_SpecificDeserializer_971650236_971650236(Schema readerSchema) { this.readerSchema = readerSchema; } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_UNION_GenericDeserializer_2140000109_2140000109.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_union_NULL_record_GenericDeserializer_2140000109_2140000109.java similarity index 95% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_UNION_GenericDeserializer_2140000109_2140000109.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_union_NULL_record_GenericDeserializer_2140000109_2140000109.java index d3e982e75..be42a3e59 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_UNION_GenericDeserializer_2140000109_2140000109.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/Map_of_union_NULL_record_GenericDeserializer_2140000109_2140000109.java @@ -10,7 +10,7 @@ import org.apache.avro.io.Decoder; import org.apache.avro.util.Utf8; -public class Map_of_UNION_GenericDeserializer_2140000109_2140000109 +public class Map_of_union_NULL_record_GenericDeserializer_2140000109_2140000109 implements FastDeserializer> { @@ -19,7 +19,7 @@ public class Map_of_UNION_GenericDeserializer_2140000109_2140000109 private final Schema mapValueOptionSchema0; private final Schema field0; - public Map_of_UNION_GenericDeserializer_2140000109_2140000109(Schema readerSchema) { + public Map_of_union_NULL_record_GenericDeserializer_2140000109_2140000109(Schema readerSchema) { this.readerSchema = readerSchema; this.mapMapValueSchema0 = readerSchema.getValueType(); this.mapValueOptionSchema0 = mapMapValueSchema0 .getTypes().get(1); diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_2018567528_1606337179.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_Array_of_record_GenericDeserializer_2018567528_1606337179.java similarity index 93% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_2018567528_1606337179.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_Array_of_record_GenericDeserializer_2018567528_1606337179.java index 53552d4c8..0ca97d6b6 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_2018567528_1606337179.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_Array_of_record_GenericDeserializer_2018567528_1606337179.java @@ -10,7 +10,7 @@ import org.apache.avro.generic.IndexedRecord; import org.apache.avro.io.Decoder; -public class UNION_GenericDeserializer_2018567528_1606337179 +public class union_NULL_Array_of_record_GenericDeserializer_2018567528_1606337179 implements FastDeserializer> { @@ -18,7 +18,7 @@ public class UNION_GenericDeserializer_2018567528_1606337179 private final Schema arrayArraySchema0; private final Schema arrayArrayElemSchema0; - public UNION_GenericDeserializer_2018567528_1606337179(Schema readerSchema) { + public union_NULL_Array_of_record_GenericDeserializer_2018567528_1606337179(Schema readerSchema) { this.readerSchema = readerSchema; this.arrayArraySchema0 = readerSchema.getTypes().get(1); this.arrayArrayElemSchema0 = arrayArraySchema0 .getElementType(); diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_568621313_1223705675.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_Map_of_record_GenericDeserializer_568621313_1223705675.java similarity index 92% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_568621313_1223705675.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_Map_of_record_GenericDeserializer_568621313_1223705675.java index 6f194f21e..b4e2c81af 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_568621313_1223705675.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_Map_of_record_GenericDeserializer_568621313_1223705675.java @@ -10,7 +10,7 @@ import org.apache.avro.io.Decoder; import org.apache.avro.util.Utf8; -public class UNION_GenericDeserializer_568621313_1223705675 +public class union_NULL_Map_of_record_GenericDeserializer_568621313_1223705675 implements FastDeserializer> { @@ -18,7 +18,7 @@ public class UNION_GenericDeserializer_568621313_1223705675 private final Schema mapMapSchema0; private final Schema mapMapValueSchema0; - public UNION_GenericDeserializer_568621313_1223705675(Schema readerSchema) { + public union_NULL_Map_of_record_GenericDeserializer_568621313_1223705675(Schema readerSchema) { this.readerSchema = readerSchema; this.mapMapSchema0 = readerSchema.getTypes().get(1); this.mapMapValueSchema0 = mapMapSchema0 .getValueType(); diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_1971822364_1672473580.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_record_GenericDeserializer_1971822364_1672473580.java similarity index 89% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_1971822364_1672473580.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_record_GenericDeserializer_1971822364_1672473580.java index 8a07a58a4..150eb2d6a 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/UNION_GenericDeserializer_1971822364_1672473580.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/deserialization/AVRO_1_11/union_NULL_record_GenericDeserializer_1971822364_1672473580.java @@ -8,14 +8,14 @@ import org.apache.avro.generic.IndexedRecord; import org.apache.avro.io.Decoder; -public class UNION_GenericDeserializer_1971822364_1672473580 +public class union_NULL_record_GenericDeserializer_1971822364_1672473580 implements FastDeserializer { private final Schema readerSchema; private final Schema recordRecordSchema0; - public UNION_GenericDeserializer_1971822364_1672473580(Schema readerSchema) { + public union_NULL_record_GenericDeserializer_1971822364_1672473580(Schema readerSchema) { this.readerSchema = readerSchema; this.recordRecordSchema0 = readerSchema.getTypes().get(1); } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_INT_STRING_DOUBLE_GenericSerializer_895888951.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_INT_STRING_DOUBLE_GenericSerializer_895888951.java new file mode 100644 index 000000000..b63aa9665 --- /dev/null +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_INT_STRING_DOUBLE_GenericSerializer_895888951.java @@ -0,0 +1,51 @@ + +package com.linkedin.avro.fastserde.generated.serialization.AVRO_1_11; + +import java.io.IOException; +import java.util.List; +import com.linkedin.avro.fastserde.FastSerializer; +import com.linkedin.avro.fastserde.customized.DatumWriterCustomization; +import org.apache.avro.io.Encoder; +import org.apache.avro.util.Utf8; + +public class Array_of_union_INT_STRING_DOUBLE_GenericSerializer_895888951 + implements FastSerializer> +{ + + + public void serialize(List data, Encoder encoder, DatumWriterCustomization customization) + throws IOException + { + (encoder).writeArrayStart(); + if ((data == null)||data.isEmpty()) { + (encoder).setItemCount(0); + } else { + (encoder).setItemCount(data.size()); + for (int counter0 = 0; (counter0 ) data).get(counter0); + if (union_INT_STRING_DOUBLE0 instanceof Integer) { + (encoder).writeIndex(0); + (encoder).writeInt(((Integer) union_INT_STRING_DOUBLE0)); + } else { + if (union_INT_STRING_DOUBLE0 instanceof CharSequence) { + (encoder).writeIndex(1); + if (((CharSequence) union_INT_STRING_DOUBLE0) instanceof Utf8) { + (encoder).writeString(((Utf8)((CharSequence) union_INT_STRING_DOUBLE0))); + } else { + (encoder).writeString(((CharSequence) union_INT_STRING_DOUBLE0).toString()); + } + } else { + if (union_INT_STRING_DOUBLE0 instanceof Double) { + (encoder).writeIndex(2); + (encoder).writeDouble(((Double) union_INT_STRING_DOUBLE0)); + } + } + } + } + } + (encoder).writeArrayEnd(); + } + +} diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_STRING_GenericSerializer_317583799.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_STRING_GenericSerializer_317583799.java new file mode 100644 index 000000000..0f4d7e04a --- /dev/null +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_STRING_GenericSerializer_317583799.java @@ -0,0 +1,44 @@ + +package com.linkedin.avro.fastserde.generated.serialization.AVRO_1_11; + +import java.io.IOException; +import java.util.List; +import com.linkedin.avro.fastserde.FastSerializer; +import com.linkedin.avro.fastserde.customized.DatumWriterCustomization; +import org.apache.avro.io.Encoder; +import org.apache.avro.util.Utf8; + +public class Array_of_union_NULL_STRING_GenericSerializer_317583799 + implements FastSerializer> +{ + + + public void serialize(List data, Encoder encoder, DatumWriterCustomization customization) + throws IOException + { + (encoder).writeArrayStart(); + if ((data == null)||data.isEmpty()) { + (encoder).setItemCount(0); + } else { + (encoder).setItemCount(data.size()); + for (int counter0 = 0; (counter0 ) data).get(counter0); + if (union_NULL_STRING0 == null) { + (encoder).writeIndex(0); + (encoder).writeNull(); + } else { + (encoder).writeIndex(1); + if (((CharSequence) union_NULL_STRING0) instanceof Utf8) { + (encoder).writeString(((Utf8)((CharSequence) union_NULL_STRING0))); + } else { + (encoder).writeString(((CharSequence) union_NULL_STRING0).toString()); + } + } + } + } + (encoder).writeArrayEnd(); + } + +} diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_UNION_GenericSerializer_777827233.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_record_GenericSerializer_777827233.java similarity index 76% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_UNION_GenericSerializer_777827233.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_record_GenericSerializer_777827233.java index d3e04ee69..bfb78e5e2 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_UNION_GenericSerializer_777827233.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Array_of_union_NULL_record_GenericSerializer_777827233.java @@ -9,7 +9,7 @@ import org.apache.avro.io.Encoder; import org.apache.avro.util.Utf8; -public class Array_of_UNION_GenericSerializer_777827233 +public class Array_of_union_NULL_record_GenericSerializer_777827233 implements FastSerializer> { @@ -24,15 +24,15 @@ public void serialize(List data, Encoder encoder, DatumWriterCust (encoder).setItemCount(data.size()); for (int counter0 = 0; (counter0 ) data).get(counter0); - if (union0 == null) { + IndexedRecord union_NULL_record0 = null; + union_NULL_record0 = ((List ) data).get(counter0); + if (union_NULL_record0 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.record".equals(((IndexedRecord) union0).getSchema().getFullName())) { + if ((union_NULL_record0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.record".equals(((IndexedRecord) union_NULL_record0).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeRecord0(((IndexedRecord) union0), (encoder), (customization)); + serializeRecord0(((IndexedRecord) union_NULL_record0), (encoder), (customization)); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithEnums_GenericSerializer_496788239.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithEnums_GenericSerializer_496788239.java index bb73a8da0..e64fc2a24 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithEnums_GenericSerializer_496788239.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithEnums_GenericSerializer_496788239.java @@ -90,16 +90,16 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteGenericReco (encoder).setItemCount(testEnumUnionArray0 .size()); for (int counter1 = 0; (counter1 ) testEnumUnionArray0).get(counter1); - if (union0 == null) { + GenericEnumSymbol union_NULL_ENUM0 = null; + union_NULL_ENUM0 = ((List ) testEnumUnionArray0).get(counter1); + if (union_NULL_ENUM0 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union0 instanceof GenericEnumSymbol)&&"com.linkedin.avro.fastserde.generated.avro.testEnum".equals(((GenericEnumSymbol) union0).getSchema().getFullName())) { + if ((union_NULL_ENUM0 instanceof GenericEnumSymbol)&&"com.linkedin.avro.fastserde.generated.avro.testEnum".equals(((GenericEnumSymbol) union_NULL_ENUM0).getSchema().getFullName())) { (encoder).writeIndex(1); int valueToWrite3; - Object enumValue3 = union0; + Object enumValue3 = union_NULL_ENUM0; if (enumValue3 instanceof Enum) { valueToWrite3 = ((Enum) enumValue3).ordinal(); } else { diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithFixed_GenericSerializer_1473954146.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithFixed_GenericSerializer_1473954146.java index 044706698..64ff444f4 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithFixed_GenericSerializer_1473954146.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteGenericRecordWithFixed_GenericSerializer_1473954146.java @@ -69,15 +69,15 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteGenericReco (encoder).setItemCount(testFixedUnionArray0 .size()); for (int counter1 = 0; (counter1 ) testFixedUnionArray0).get(counter1); - if (union0 == null) { + GenericFixed union_NULL_FIXED0 = null; + union_NULL_FIXED0 = ((List ) testFixedUnionArray0).get(counter1); + if (union_NULL_FIXED0 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union0 instanceof GenericFixed)&&"com.linkedin.avro.fastserde.generated.avro.testFixed".equals(((GenericFixed) union0).getSchema().getFullName())) { + if ((union_NULL_FIXED0 instanceof GenericFixed)&&"com.linkedin.avro.fastserde.generated.avro.testFixed".equals(((GenericFixed) union_NULL_FIXED0).getSchema().getFullName())) { (encoder).writeIndex(1); - (encoder).writeFixed(((GenericFixed) union0).bytes()); + (encoder).writeFixed(((GenericFixed) union_NULL_FIXED0).bytes()); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordCollectionsField_GenericSerializer_1348736347.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordCollectionsField_GenericSerializer_1348736347.java index 2f8c28e23..70256b92e 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordCollectionsField_GenericSerializer_1348736347.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordCollectionsField_GenericSerializer_1348736347.java @@ -95,15 +95,15 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteSubRecordCo (encoder).setItemCount(((List ) recordsArrayUnion0).size()); for (int counter1 = 0; (counter1 <((List ) recordsArrayUnion0).size()); counter1 ++) { (encoder).startItem(); - IndexedRecord union0 = null; - union0 = ((List )((List ) recordsArrayUnion0)).get(counter1); - if (union0 == null) { + IndexedRecord union_NULL_subRecord0 = null; + union_NULL_subRecord0 = ((List )((List ) recordsArrayUnion0)).get(counter1); + if (union_NULL_subRecord0 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union0).getSchema().getFullName())) { + if ((union_NULL_subRecord0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union_NULL_subRecord0).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeSubRecord0(((IndexedRecord) union0), (encoder), (customization)); + serializeSubRecord0(((IndexedRecord) union_NULL_subRecord0), (encoder), (customization)); } } } @@ -133,15 +133,15 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteSubRecordCo for (CharSequence key1 : ((Map )((Map ) recordsMapUnion0)).keySet()) { (encoder).startItem(); (encoder).writeString(key1); - IndexedRecord union1 = null; - union1 = ((Map )((Map ) recordsMapUnion0)).get(key1); - if (union1 == null) { + IndexedRecord union_NULL_subRecord1 = null; + union_NULL_subRecord1 = ((Map )((Map ) recordsMapUnion0)).get(key1); + if (union_NULL_subRecord1 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union1 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union1).getSchema().getFullName())) { + if ((union_NULL_subRecord1 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union_NULL_subRecord1).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeSubRecord0(((IndexedRecord) union1), (encoder), (customization)); + serializeSubRecord0(((IndexedRecord) union_NULL_subRecord1), (encoder), (customization)); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordComplexCollectionsField_GenericSerializer_1813582373.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordComplexCollectionsField_GenericSerializer_1813582373.java index b98242249..c448d96e7 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordComplexCollectionsField_GenericSerializer_1813582373.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastGenericSerializerGeneratorTest_shouldWriteSubRecordComplexCollectionsField_GenericSerializer_1813582373.java @@ -33,26 +33,26 @@ public void serializeFastGenericSerializerGeneratorTest_shouldWriteSubRecordComp (encoder).setItemCount(recordsArrayMap0 .size()); for (int counter0 = 0; (counter0 map0 = null; - map0 = ((List> ) recordsArrayMap0).get(counter0); - (customization).getCheckMapTypeFunction().apply(map0); + Map map_of_union_NULL_subRecord0 = null; + map_of_union_NULL_subRecord0 = ((List> ) recordsArrayMap0).get(counter0); + (customization).getCheckMapTypeFunction().apply(map_of_union_NULL_subRecord0); (encoder).writeMapStart(); - if ((map0 == null)||map0 .isEmpty()) { + if ((map_of_union_NULL_subRecord0 == null)||map_of_union_NULL_subRecord0 .isEmpty()) { (encoder).setItemCount(0); } else { - (encoder).setItemCount(map0 .size()); - for (CharSequence key0 : ((Map ) map0).keySet()) { + (encoder).setItemCount(map_of_union_NULL_subRecord0 .size()); + for (CharSequence key0 : ((Map ) map_of_union_NULL_subRecord0).keySet()) { (encoder).startItem(); (encoder).writeString(key0); - IndexedRecord union0 = null; - union0 = ((Map ) map0).get(key0); - if (union0 == null) { + IndexedRecord union_NULL_subRecord0 = null; + union_NULL_subRecord0 = ((Map ) map_of_union_NULL_subRecord0).get(key0); + if (union_NULL_subRecord0 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union0).getSchema().getFullName())) { + if ((union_NULL_subRecord0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union_NULL_subRecord0).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeSubRecord0(((IndexedRecord) union0), (encoder), (customization)); + serializeSubRecord0(((IndexedRecord) union_NULL_subRecord0), (encoder), (customization)); } } } @@ -97,24 +97,24 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteSubRecordCo for (CharSequence key1 : ((Map> ) recordsMapArray0).keySet()) { (encoder).startItem(); (encoder).writeString(key1); - List array0 = null; - array0 = ((Map> ) recordsMapArray0).get(key1); + List array_of_union_NULL_subRecord0 = null; + array_of_union_NULL_subRecord0 = ((Map> ) recordsMapArray0).get(key1); (encoder).writeArrayStart(); - if ((array0 == null)||array0 .isEmpty()) { + if ((array_of_union_NULL_subRecord0 == null)||array_of_union_NULL_subRecord0 .isEmpty()) { (encoder).setItemCount(0); } else { - (encoder).setItemCount(array0 .size()); - for (int counter1 = 0; (counter1 ) array0).get(counter1); - if (union1 == null) { + IndexedRecord union_NULL_subRecord1 = null; + union_NULL_subRecord1 = ((List ) array_of_union_NULL_subRecord0).get(counter1); + if (union_NULL_subRecord1 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union1 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union1).getSchema().getFullName())) { + if ((union_NULL_subRecord1 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union_NULL_subRecord1).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeSubRecord0(((IndexedRecord) union1), (encoder), (customization)); + serializeSubRecord0(((IndexedRecord) union_NULL_subRecord1), (encoder), (customization)); } } } @@ -137,26 +137,26 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteSubRecordCo (encoder).setItemCount(((List> ) recordsArrayMapUnion0).size()); for (int counter2 = 0; (counter2 <((List> ) recordsArrayMapUnion0).size()); counter2 ++) { (encoder).startItem(); - Map map1 = null; - map1 = ((List> )((List> ) recordsArrayMapUnion0)).get(counter2); - (customization).getCheckMapTypeFunction().apply(map1); + Map map_of_union_NULL_subRecord1 = null; + map_of_union_NULL_subRecord1 = ((List> )((List> ) recordsArrayMapUnion0)).get(counter2); + (customization).getCheckMapTypeFunction().apply(map_of_union_NULL_subRecord1); (encoder).writeMapStart(); - if ((map1 == null)||map1 .isEmpty()) { + if ((map_of_union_NULL_subRecord1 == null)||map_of_union_NULL_subRecord1 .isEmpty()) { (encoder).setItemCount(0); } else { - (encoder).setItemCount(map1 .size()); - for (CharSequence key2 : ((Map ) map1).keySet()) { + (encoder).setItemCount(map_of_union_NULL_subRecord1 .size()); + for (CharSequence key2 : ((Map ) map_of_union_NULL_subRecord1).keySet()) { (encoder).startItem(); (encoder).writeString(key2); - IndexedRecord union2 = null; - union2 = ((Map ) map1).get(key2); - if (union2 == null) { + IndexedRecord union_NULL_subRecord2 = null; + union_NULL_subRecord2 = ((Map ) map_of_union_NULL_subRecord1).get(key2); + if (union_NULL_subRecord2 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union2 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union2).getSchema().getFullName())) { + if ((union_NULL_subRecord2 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union_NULL_subRecord2).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeSubRecord0(((IndexedRecord) union2), (encoder), (customization)); + serializeSubRecord0(((IndexedRecord) union_NULL_subRecord2), (encoder), (customization)); } } } @@ -189,24 +189,24 @@ private void serialize_FastGenericSerializerGeneratorTest_shouldWriteSubRecordCo for (CharSequence key3 : ((Map> )((Map> ) recordsMapArrayUnion0)).keySet()) { (encoder).startItem(); (encoder).writeString(key3); - List array1 = null; - array1 = ((Map> )((Map> ) recordsMapArrayUnion0)).get(key3); + List array_of_union_NULL_subRecord1 = null; + array_of_union_NULL_subRecord1 = ((Map> )((Map> ) recordsMapArrayUnion0)).get(key3); (encoder).writeArrayStart(); - if ((array1 == null)||array1 .isEmpty()) { + if ((array_of_union_NULL_subRecord1 == null)||array_of_union_NULL_subRecord1 .isEmpty()) { (encoder).setItemCount(0); } else { - (encoder).setItemCount(array1 .size()); - for (int counter3 = 0; (counter3 ) array1).get(counter3); - if (union3 == null) { + IndexedRecord union_NULL_subRecord3 = null; + union_NULL_subRecord3 = ((List ) array_of_union_NULL_subRecord1).get(counter3); + if (union_NULL_subRecord3 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union3 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union3).getSchema().getFullName())) { + if ((union_NULL_subRecord3 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.subRecord".equals(((IndexedRecord) union_NULL_subRecord3).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeSubRecord0(((IndexedRecord) union3), (encoder), (customization)); + serializeSubRecord0(((IndexedRecord) union_NULL_subRecord3), (encoder), (customization)); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_GenericSerializer_229156053.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_GenericSerializer_229156053.java index 4aa601f55..2bf4bb9a2 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_GenericSerializer_229156053.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_GenericSerializer_229156053.java @@ -54,17 +54,17 @@ private void serialize_FastSerdeLogicalTypesDefined0(IndexedRecord data, Encoder (encoder).setItemCount(arrayOfUnionOfDateAndTimestampMillis0 .size()); for (int counter0 = 0; (counter0 ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); - if (union0 instanceof LocalDate) { + Object union_INT_LONG0 = null; + union_INT_LONG0 = ((List ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); + if (union_INT_LONG0 instanceof LocalDate) { (encoder).writeIndex(0); - Object convertedValue2 = union0; + Object convertedValue2 = union_INT_LONG0; convertedValue2 = Conversions.convertToRawType(convertedValue2, this.logicalTypeSchema__59052268, this.logicalTypeSchema__59052268 .getLogicalType(), this.conversion_date); (encoder).writeInt(((Integer) convertedValue2)); } else { - if (union0 instanceof Instant) { + if (union_INT_LONG0 instanceof Instant) { (encoder).writeIndex(1); - Object convertedValue3 = union0; + Object convertedValue3 = union_INT_LONG0; convertedValue3 = Conversions.convertToRawType(convertedValue3, this.logicalTypeSchema_1074306973, this.logicalTypeSchema_1074306973 .getLogicalType(), this.conversion_timestamp_millis); (encoder).writeLong(((Long) convertedValue3)); } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_SpecificSerializer_229156053.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_SpecificSerializer_229156053.java index cd9a62d31..7696c772d 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_SpecificSerializer_229156053.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesDefined_SpecificSerializer_229156053.java @@ -54,17 +54,17 @@ private void serialize_FastSerdeLogicalTypesDefined0(FastSerdeLogicalTypesDefine (encoder).setItemCount(arrayOfUnionOfDateAndTimestampMillis0 .size()); for (int counter0 = 0; (counter0 ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); - if (union0 instanceof LocalDate) { + Object union_INT_LONG0 = null; + union_INT_LONG0 = ((List ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); + if (union_INT_LONG0 instanceof LocalDate) { (encoder).writeIndex(0); - Object convertedValue2 = union0; + Object convertedValue2 = union_INT_LONG0; convertedValue2 = Conversions.convertToRawType(convertedValue2, this.logicalTypeSchema__59052268, this.logicalTypeSchema__59052268 .getLogicalType(), this.conversion_date); (encoder).writeInt(((Integer) convertedValue2)); } else { - if (union0 instanceof Instant) { + if (union_INT_LONG0 instanceof Instant) { (encoder).writeIndex(1); - Object convertedValue3 = union0; + Object convertedValue3 = union_INT_LONG0; convertedValue3 = Conversions.convertToRawType(convertedValue3, this.logicalTypeSchema_1074306973, this.logicalTypeSchema_1074306973 .getLogicalType(), this.conversion_timestamp_millis); (encoder).writeLong(((Long) convertedValue3)); } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_GenericSerializer_1007574890.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_GenericSerializer_1007574890.java index 3803b1c96..43c00c66a 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_GenericSerializer_1007574890.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_GenericSerializer_1007574890.java @@ -119,17 +119,17 @@ private void serialize_FastSerdeLogicalTypesTest10(IndexedRecord data, Encoder e for (CharSequence key1 : ((Map ) mapOfUnionsOfDateAndTimestampMillis0).keySet()) { (encoder).startItem(); (encoder).writeString(key1); - Object union0 = null; - union0 = ((Map ) mapOfUnionsOfDateAndTimestampMillis0).get(key1); - if (union0 instanceof LocalDate) { + Object union_INT_LONG0 = null; + union_INT_LONG0 = ((Map ) mapOfUnionsOfDateAndTimestampMillis0).get(key1); + if (union_INT_LONG0 instanceof LocalDate) { (encoder).writeIndex(0); - Object convertedValue3 = union0; + Object convertedValue3 = union_INT_LONG0; convertedValue3 = Conversions.convertToRawType(convertedValue3, this.logicalTypeSchema__59052268, this.logicalTypeSchema__59052268 .getLogicalType(), this.conversion_date); (encoder).writeInt(((Integer) convertedValue3)); } else { - if (union0 instanceof Instant) { + if (union_INT_LONG0 instanceof Instant) { (encoder).writeIndex(1); - Object convertedValue4 = union0; + Object convertedValue4 = union_INT_LONG0; convertedValue4 = Conversions.convertToRawType(convertedValue4, this.logicalTypeSchema_1074306973, this.logicalTypeSchema_1074306973 .getLogicalType(), this.conversion_timestamp_millis); (encoder).writeLong(((Long) convertedValue4)); } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_SpecificSerializer_1007574890.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_SpecificSerializer_1007574890.java index 668bdc1a9..90f80b474 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_SpecificSerializer_1007574890.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesTest1_SpecificSerializer_1007574890.java @@ -120,17 +120,17 @@ private void serialize_FastSerdeLogicalTypesTest10(FastSerdeLogicalTypesTest1 da for (CharSequence key1 : ((Map ) mapOfUnionsOfDateAndTimestampMillis0).keySet()) { (encoder).startItem(); (encoder).writeString(key1); - Object union0 = null; - union0 = ((Map ) mapOfUnionsOfDateAndTimestampMillis0).get(key1); - if (union0 instanceof LocalDate) { + Object union_INT_LONG0 = null; + union_INT_LONG0 = ((Map ) mapOfUnionsOfDateAndTimestampMillis0).get(key1); + if (union_INT_LONG0 instanceof LocalDate) { (encoder).writeIndex(0); - Object convertedValue3 = union0; + Object convertedValue3 = union_INT_LONG0; convertedValue3 = Conversions.convertToRawType(convertedValue3, this.logicalTypeSchema__59052268, this.logicalTypeSchema__59052268 .getLogicalType(), this.conversion_date); (encoder).writeInt(((Integer) convertedValue3)); } else { - if (union0 instanceof Instant) { + if (union_INT_LONG0 instanceof Instant) { (encoder).writeIndex(1); - Object convertedValue4 = union0; + Object convertedValue4 = union_INT_LONG0; convertedValue4 = Conversions.convertToRawType(convertedValue4, this.logicalTypeSchema_1074306973, this.logicalTypeSchema_1074306973 .getLogicalType(), this.conversion_timestamp_millis); (encoder).writeLong(((Long) convertedValue4)); } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_GenericSerializer_1982763418.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_GenericSerializer_1982763418.java index 66d51e270..ba60238f9 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_GenericSerializer_1982763418.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_GenericSerializer_1982763418.java @@ -40,15 +40,15 @@ private void serialize_FastSerdeLogicalTypesUndefined0(IndexedRecord data, Encod (encoder).setItemCount(arrayOfUnionOfDateAndTimestampMillis0 .size()); for (int counter0 = 0; (counter0 ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); - if (union0 instanceof Integer) { + Object union_INT_LONG0 = null; + union_INT_LONG0 = ((List ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); + if (union_INT_LONG0 instanceof Integer) { (encoder).writeIndex(0); - (encoder).writeInt(((Integer) union0)); + (encoder).writeInt(((Integer) union_INT_LONG0)); } else { - if (union0 instanceof Long) { + if (union_INT_LONG0 instanceof Long) { (encoder).writeIndex(1); - (encoder).writeLong(((Long) union0)); + (encoder).writeLong(((Long) union_INT_LONG0)); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_SpecificSerializer_1982763418.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_SpecificSerializer_1982763418.java index fbbc19764..57c929149 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_SpecificSerializer_1982763418.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/FastSerdeLogicalTypesUndefined_SpecificSerializer_1982763418.java @@ -40,15 +40,15 @@ private void serialize_FastSerdeLogicalTypesUndefined0(FastSerdeLogicalTypesUnde (encoder).setItemCount(arrayOfUnionOfDateAndTimestampMillis0 .size()); for (int counter0 = 0; (counter0 ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); - if (union0 instanceof Integer) { + Object union_INT_LONG0 = null; + union_INT_LONG0 = ((List ) arrayOfUnionOfDateAndTimestampMillis0).get(counter0); + if (union_INT_LONG0 instanceof Integer) { (encoder).writeIndex(0); - (encoder).writeInt(((Integer) union0)); + (encoder).writeInt(((Integer) union_INT_LONG0)); } else { - if (union0 instanceof Long) { + if (union_INT_LONG0 instanceof Long) { (encoder).writeIndex(1); - (encoder).writeLong(((Long) union0)); + (encoder).writeLong(((Long) union_INT_LONG0)); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_INT_STRING_GenericSerializer_2132803162.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_INT_STRING_GenericSerializer_2132803162.java new file mode 100644 index 000000000..ced6735e4 --- /dev/null +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_INT_STRING_GenericSerializer_2132803162.java @@ -0,0 +1,48 @@ + +package com.linkedin.avro.fastserde.generated.serialization.AVRO_1_11; + +import java.io.IOException; +import java.util.Map; +import com.linkedin.avro.fastserde.FastSerializer; +import com.linkedin.avro.fastserde.customized.DatumWriterCustomization; +import org.apache.avro.io.Encoder; +import org.apache.avro.util.Utf8; + +public class Map_of_union_INT_STRING_GenericSerializer_2132803162 + implements FastSerializer> +{ + + + public void serialize(Map data, Encoder encoder, DatumWriterCustomization customization) + throws IOException + { + (customization).getCheckMapTypeFunction().apply(data); + (encoder).writeMapStart(); + if ((data == null)||data.isEmpty()) { + (encoder).setItemCount(0); + } else { + (encoder).setItemCount(data.size()); + for (CharSequence key0 : ((Map ) data).keySet()) { + (encoder).startItem(); + (encoder).writeString(key0); + Object union_INT_STRING0 = null; + union_INT_STRING0 = ((Map ) data).get(key0); + if (union_INT_STRING0 instanceof Integer) { + (encoder).writeIndex(0); + (encoder).writeInt(((Integer) union_INT_STRING0)); + } else { + if (union_INT_STRING0 instanceof CharSequence) { + (encoder).writeIndex(1); + if (((CharSequence) union_INT_STRING0) instanceof Utf8) { + (encoder).writeString(((Utf8)((CharSequence) union_INT_STRING0))); + } else { + (encoder).writeString(((CharSequence) union_INT_STRING0).toString()); + } + } + } + } + } + (encoder).writeMapEnd(); + } + +} diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_STRING_GenericSerializer_1486935134.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_STRING_GenericSerializer_1486935134.java new file mode 100644 index 000000000..147240116 --- /dev/null +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_STRING_GenericSerializer_1486935134.java @@ -0,0 +1,46 @@ + +package com.linkedin.avro.fastserde.generated.serialization.AVRO_1_11; + +import java.io.IOException; +import java.util.Map; +import com.linkedin.avro.fastserde.FastSerializer; +import com.linkedin.avro.fastserde.customized.DatumWriterCustomization; +import org.apache.avro.io.Encoder; +import org.apache.avro.util.Utf8; + +public class Map_of_union_NULL_STRING_GenericSerializer_1486935134 + implements FastSerializer> +{ + + + public void serialize(Map data, Encoder encoder, DatumWriterCustomization customization) + throws IOException + { + (customization).getCheckMapTypeFunction().apply(data); + (encoder).writeMapStart(); + if ((data == null)||data.isEmpty()) { + (encoder).setItemCount(0); + } else { + (encoder).setItemCount(data.size()); + for (CharSequence key0 : ((Map ) data).keySet()) { + (encoder).startItem(); + (encoder).writeString(key0); + CharSequence union_NULL_STRING0 = null; + union_NULL_STRING0 = ((Map ) data).get(key0); + if (union_NULL_STRING0 == null) { + (encoder).writeIndex(0); + (encoder).writeNull(); + } else { + (encoder).writeIndex(1); + if (((CharSequence) union_NULL_STRING0) instanceof Utf8) { + (encoder).writeString(((Utf8)((CharSequence) union_NULL_STRING0))); + } else { + (encoder).writeString(((CharSequence) union_NULL_STRING0).toString()); + } + } + } + } + (encoder).writeMapEnd(); + } + +} diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_UNION_GenericSerializer_2140000109.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_record_GenericSerializer_2140000109.java similarity index 77% rename from fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_UNION_GenericSerializer_2140000109.java rename to fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_record_GenericSerializer_2140000109.java index 75972c437..c2582b76c 100644 --- a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_UNION_GenericSerializer_2140000109.java +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/Map_of_union_NULL_record_GenericSerializer_2140000109.java @@ -9,7 +9,7 @@ import org.apache.avro.io.Encoder; import org.apache.avro.util.Utf8; -public class Map_of_UNION_GenericSerializer_2140000109 +public class Map_of_union_NULL_record_GenericSerializer_2140000109 implements FastSerializer> { @@ -26,15 +26,15 @@ public void serialize(Map data, Encoder encoder, Da for (CharSequence key0 : ((Map ) data).keySet()) { (encoder).startItem(); (encoder).writeString(key0); - IndexedRecord union0 = null; - union0 = ((Map ) data).get(key0); - if (union0 == null) { + IndexedRecord union_NULL_record0 = null; + union_NULL_record0 = ((Map ) data).get(key0); + if (union_NULL_record0 == null) { (encoder).writeIndex(0); (encoder).writeNull(); } else { - if ((union0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.record".equals(((IndexedRecord) union0).getSchema().getFullName())) { + if ((union_NULL_record0 instanceof IndexedRecord)&&"com.linkedin.avro.fastserde.generated.avro.record".equals(((IndexedRecord) union_NULL_record0).getSchema().getFullName())) { (encoder).writeIndex(1); - serializeRecord0(((IndexedRecord) union0), (encoder), (customization)); + serializeRecord0(((IndexedRecord) union_NULL_record0), (encoder), (customization)); } } } diff --git a/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/TestRecord_GenericSerializer_331683882.java b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/TestRecord_GenericSerializer_331683882.java new file mode 100644 index 000000000..e5d8bcfc5 --- /dev/null +++ b/fastserde/avro-fastserde-tests111/build/codegen/java/com/linkedin/avro/fastserde/generated/serialization/AVRO_1_11/TestRecord_GenericSerializer_331683882.java @@ -0,0 +1,53 @@ + +package com.linkedin.avro.fastserde.generated.serialization.AVRO_1_11; + +import java.io.IOException; +import java.util.List; +import com.linkedin.avro.fastserde.FastSerializer; +import com.linkedin.avro.fastserde.customized.DatumWriterCustomization; +import org.apache.avro.generic.IndexedRecord; +import org.apache.avro.io.Encoder; +import org.apache.avro.util.Utf8; + +public class TestRecord_GenericSerializer_331683882 + implements FastSerializer +{ + + + public void serialize(IndexedRecord data, Encoder encoder, DatumWriterCustomization customization) + throws IOException + { + serializeTestRecord0(data, (encoder), (customization)); + } + + @SuppressWarnings("unchecked") + public void serializeTestRecord0(IndexedRecord data, Encoder encoder, DatumWriterCustomization customization) + throws IOException + { + List fields0 = ((List ) data.get(0)); + (encoder).writeArrayStart(); + if ((fields0 == null)||fields0 .isEmpty()) { + (encoder).setItemCount(0); + } else { + (encoder).setItemCount(fields0 .size()); + for (int counter0 = 0; (counter0 ) fields0).get(counter0); + if (union_NULL_STRING0 == null) { + (encoder).writeIndex(0); + (encoder).writeNull(); + } else { + (encoder).writeIndex(1); + if (((CharSequence) union_NULL_STRING0) instanceof Utf8) { + (encoder).writeString(((Utf8)((CharSequence) union_NULL_STRING0))); + } else { + (encoder).writeString(((CharSequence) union_NULL_STRING0).toString()); + } + } + } + } + (encoder).writeArrayEnd(); + } + +} diff --git a/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java index 8d8525f08..ae01c6c7e 100644 --- a/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java +++ b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java @@ -246,7 +246,7 @@ private void processArrayElementLoop(final Schema arraySchema, final JClass arra final Schema elementSchema = arraySchema.getElementType(); if (SchemaAssistant.isComplexType(elementSchema)) { - JVar containerVar = declareValueVar(elementSchema.getName(), elementSchema, forBody); + JVar containerVar = declareValueVar(SchemaAssistant.getTypeName(elementSchema), elementSchema, forBody); forBody.assign(containerVar, JExpr.invoke(JExpr.cast(arrayClass, arrayExpr), getMethodName).arg(counter)); processComplexType(elementSchema, containerVar, forBody, customizationSupplier); } else { @@ -290,7 +290,7 @@ private void processMap(final Schema mapSchema, JExpression mapExpr, JBlock body JVar containerVar; if (SchemaAssistant.isComplexType(valueSchema)) { - containerVar = declareValueVar(valueSchema.getName(), valueSchema, forBody); + containerVar = declareValueVar(SchemaAssistant.getTypeName(valueSchema), valueSchema, forBody); forBody.assign(containerVar, JExpr.invoke(JExpr.cast(mapClass, mapExpr), "get").arg(mapKeysLoop.var())); processComplexType(valueSchema, containerVar, forBody, customizationSupplier); diff --git a/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java index b18a2f422..6173487ef 100644 --- a/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java +++ b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java @@ -214,6 +214,12 @@ public static String getTypeName (Schema schema) { return "Array_of_" + getTypeName(schema.getElementType()); } else if (Schema.Type.MAP.equals(schemaType)) { return "Map_of_" + getTypeName(schema.getValueType()); + } else if (Schema.Type.UNION.equals(schemaType)) { + StringBuilder sb = new StringBuilder("union"); + for (Schema unionType : schema.getTypes()) { + sb.append("_").append(getTypeName(unionType)); + } + return sb.toString(); } else { return schema.getType().name(); }