From fda68917d174ed1682cb87f83ceca08ded7a931c Mon Sep 17 00:00:00 2001 From: Jiefan Li Date: Tue, 17 Jan 2023 12:58:36 -0800 Subject: [PATCH] Coral-Schema: return nullable schema for array item and map value (#345) --- .../linkedin/coral/schema/avro/ToNullableSchemaVisitor.java | 4 ++-- .../src/test/resources/testToNullableSchema-expected.avsc | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/coral-schema/src/main/java/com/linkedin/coral/schema/avro/ToNullableSchemaVisitor.java b/coral-schema/src/main/java/com/linkedin/coral/schema/avro/ToNullableSchemaVisitor.java index a8247b532..2a04cccd6 100644 --- a/coral-schema/src/main/java/com/linkedin/coral/schema/avro/ToNullableSchemaVisitor.java +++ b/coral-schema/src/main/java/com/linkedin/coral/schema/avro/ToNullableSchemaVisitor.java @@ -46,12 +46,12 @@ public Schema union(Schema union, List options) { @Override public Schema array(Schema array, Schema element) { - return Schema.createArray(element); + return Schema.createArray(SchemaUtilities.makeNullable(element, false)); } @Override public Schema map(Schema map, Schema value) { - return Schema.createMap(value); + return Schema.createMap(SchemaUtilities.makeNullable(value, false)); } @Override diff --git a/coral-schema/src/test/resources/testToNullableSchema-expected.avsc b/coral-schema/src/test/resources/testToNullableSchema-expected.avsc index 9bec8232e..c79b02be6 100644 --- a/coral-schema/src/test/resources/testToNullableSchema-expected.avsc +++ b/coral-schema/src/test/resources/testToNullableSchema-expected.avsc @@ -18,14 +18,14 @@ "name" : "Array_Col", "type" : [ "null", { "type" : "array", - "items" : "string" + "items" : [ "null", "string" ] } ], "default" : null }, { "name" : "Map_Col", "type" : [ "null", { "type" : "map", - "values" : "string" + "values" : [ "null", "string" ] } ], "default" : null }, { @@ -86,7 +86,7 @@ "name" : "Map_Col", "type" : [ "null", { "type" : "map", - "values" : "string" + "values" : [ "null", "string" ] } ], "default" : null } ]