diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/data/SchemaSerializationTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/data/SchemaSerializationTest.java index 3acb8cdc5519..dd483150ff7c 100644 --- a/pinot-spi/src/test/java/org/apache/pinot/spi/data/SchemaSerializationTest.java +++ b/pinot-spi/src/test/java/org/apache/pinot/spi/data/SchemaSerializationTest.java @@ -415,6 +415,32 @@ public void testJsonValueWorksWithFreshObjectMapper() assertEquals(deserializedSchema.getSchemaName(), "testSchema"); } + @Test + public void testDeserializeSimpleSchemaWithoutFieldType() + throws Exception { + final String simpleSchemaJson = "{" + + "\"schemaName\":\"mytable\"," + + "\"metricFieldSpecs\":[{\"name\":\"ActualElapsedTime\",\"dataType\":\"INT\"}]," + + "\"timeFieldSpec\":{\"incomingGranularitySpec\":{" + + "\"name\":\"DaysSinceEpoch\",\"dataType\":\"INT\",\"timeType\":\"DAYS\"}}," + + "\"dimensionFieldSpecs\":[" + + "{\"name\":\"AirlineID\",\"dataType\":\"LONG\"}," + + "{\"name\":\"DivAirportIDs\",\"dataType\":\"INT\",\"singleValueField\":false}" + + "]" + + "}"; + + final Schema deserializedSchema = Schema.fromString(simpleSchemaJson); + + assertEquals(deserializedSchema.getSchemaName(), "mytable"); + assertNotNull(deserializedSchema.getMetricSpec("ActualElapsedTime")); + assertEquals(deserializedSchema.getMetricSpec("ActualElapsedTime").getDataType(), DataType.INT); + assertNotNull(deserializedSchema.getDimensionSpec("AirlineID")); + assertEquals(deserializedSchema.getDimensionSpec("AirlineID").getDataType(), DataType.LONG); + assertFalse(deserializedSchema.getDimensionSpec("DivAirportIDs").isSingleValueField()); + assertNotNull(deserializedSchema.getTimeFieldSpec()); + assertEquals(deserializedSchema.getTimeFieldSpec().getIncomingGranularitySpec().getName(), "DaysSinceEpoch"); + } + @Test public void testComplexFieldDefaultNullValue() throws Exception {