1
0

[HUDI-1768] add spark datasource unit test for schema validate add column (#2776)

This commit is contained in:
lw0090
2021-05-12 04:49:18 +08:00
committed by GitHub
parent be9db2c4f5
commit 5a8b2a4f86
2 changed files with 96 additions and 1 deletions

View File

@@ -67,6 +67,10 @@ public class TestTableSchemaEvolution extends HoodieClientTestBase {
public static final String EXTRA_FIELD_SCHEMA =
"{\"name\": \"new_field\", \"type\": \"boolean\", \"default\": false},";
public static final String EXTRA_FIELD_WITHOUT_DEFAULT_SCHEMA =
"{\"name\": \"new_field_without_default\", \"type\": \"boolean\"},";
public static final String EXTRA_FIELD_NULLABLE_SCHEMA =
",{\"name\": \"new_field_without_default\", \"type\": [\"boolean\", \"null\"]}";
// TRIP_EXAMPLE_SCHEMA with a new_field added
public static final String TRIP_EXAMPLE_SCHEMA_EVOLVED = TRIP_SCHEMA_PREFIX + EXTRA_TYPE_SCHEMA + MAP_TYPE_SCHEMA
@@ -143,6 +147,16 @@ public class TestTableSchemaEvolution extends HoodieClientTestBase {
+ TRIP_SCHEMA_SUFFIX;
assertTrue(TableSchemaResolver.isSchemaCompatible(TRIP_EXAMPLE_SCHEMA, multipleAddedFieldSchema),
"Multiple added fields with defauls are compatible");
assertFalse(TableSchemaResolver.isSchemaCompatible(TRIP_EXAMPLE_SCHEMA,
TRIP_SCHEMA_PREFIX + EXTRA_TYPE_SCHEMA + MAP_TYPE_SCHEMA
+ FARE_NESTED_SCHEMA + TIP_NESTED_SCHEMA + EXTRA_FIELD_WITHOUT_DEFAULT_SCHEMA + TRIP_SCHEMA_SUFFIX),
"Added field without default and not nullable is not compatible (Evolved Schema)");
assertTrue(TableSchemaResolver.isSchemaCompatible(TRIP_EXAMPLE_SCHEMA,
TRIP_SCHEMA_PREFIX + EXTRA_TYPE_SCHEMA + MAP_TYPE_SCHEMA
+ FARE_NESTED_SCHEMA + TIP_NESTED_SCHEMA + TRIP_SCHEMA_SUFFIX + EXTRA_FIELD_NULLABLE_SCHEMA),
"Added nullable field is compatible (Evolved Schema)");
}
@Test