cloud-fan commented on code in PR #53450:
URL: https://github.com/apache/spark/pull/53450#discussion_r2616048720
##########
sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/V2TableUtilSuite.scala:
##########
@@ -529,6 +530,86 @@ class V2TableUtilSuite extends SparkFunSuite {
assert(errors.head == "`person`.`attrs`.`value` type has changed from INT
to BIGINT")
}
+ test("validateCapturedColumns - ALLOW_NEW_TOP_LEVEL_FIELDS allows top-level
additions") {
+ val originCols = Array(
+ col("id", LongType, nullable = false),
+ col("name", StringType, nullable = true))
+ val currentCols = Array(
+ col("id", LongType, nullable = false),
+ col("name", StringType, nullable = true),
+ col("age", IntegerType, nullable = true))
+ val table = TestTableWithMetadataSupport("test", currentCols)
+
+ val errors = validateCapturedColumns(table, originCols,
ALLOW_NEW_TOP_LEVEL_FIELDS)
+ assert(errors.isEmpty)
+ }
+
+ test("validateCapturedColumns - ALLOW_NEW_TOP_LEVEL_FIELDS prohibits nested
additions") {
+ val originAddress = StructType(Seq(
+ StructField("street", StringType),
+ StructField("city", StringType)))
+ val originCols = Array(
+ col("id", LongType, nullable = false),
+ col("address", originAddress, nullable = true))
+ val currentAddress = StructType(Seq(
+ StructField("street", StringType),
+ StructField("city", StringType),
+ StructField("zipCode", StringType)))
+ val currentCols = Array(
+ col("id", LongType, nullable = false),
+ col("address", currentAddress, nullable = true))
+ val table = TestTableWithMetadataSupport("test", currentCols)
+
+ val errors = validateCapturedColumns(table, originCols,
ALLOW_NEW_TOP_LEVEL_FIELDS)
+ assert(errors.size == 1)
+ assert(errors.head.contains("`address`.`zipCode` STRING has been added"))
+ }
+
+ test("validateCapturedColumns - ALLOW_NEW_TOP_LEVEL_FIELDS prohibits nested
arr additions") {
Review Comment:
to make the names shorter:
```
validateCapturedColumns - ALLOW_NEW_TOP_LEVEL_FIELDS allows new cols
validateCapturedColumns - ALLOW_NEW_TOP_LEVEL_FIELDS fails new fields
validateCapturedColumns - ALLOW_NEW_TOP_LEVEL_FIELDS fails new fields in
array
...
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]