aokolnychyi commented on code in PR #50271: URL: https://github.com/apache/spark/pull/50271#discussion_r2008247485
########## sql/core/src/test/scala/org/apache/spark/sql/connector/MergeIntoTableSuiteBase.scala: ########## @@ -32,6 +32,58 @@ abstract class MergeIntoTableSuiteBase extends RowLevelOperationSuiteBase { import testImplicits._ + test("merge into table containing added column with default value") { + withTempView("source") { + sql( + s"""CREATE TABLE $tableNameAsString ( + | pk INT NOT NULL, + | salary INT NOT NULL DEFAULT -1, + | dep STRING) + |PARTITIONED BY (dep) + |""".stripMargin) + + append("pk INT NOT NULL, dep STRING", + """{ "pk": 1, "dep": "hr" } + |{ "pk": 2, "dep": "hr" } + |{ "pk": 3, "dep": "hr" } + |""".stripMargin) + + sql(s"ALTER TABLE $tableNameAsString ADD COLUMN txt STRING DEFAULT 'initial-text'") + + checkAnswer( + sql(s"SELECT * FROM $tableNameAsString"), + Seq( + Row(1, -1, "hr", "initial-text"), + Row(2, -1, "hr", "initial-text"), + Row(3, -1, "hr", "initial-text"))) + + val sourceRows = Seq( + (1, 100, "hr"), + (4, 400, "hr")) + sourceRows.toDF("pk", "salary", "dep").createOrReplaceTempView("source") + + sql( + s"""MERGE INTO $tableNameAsString t + |USING source s + |ON t.pk = s.pk + |WHEN MATCHED THEN + | UPDATE SET t.salary = s.salary, t.txt = DEFAULT Review Comment: I believe the line below should already cover it (we omit DEFAULT for `txt` but not for `salary`): ``` WHEN NOT MATCHED THEN INSERT (pk, salary, dep) VALUES (s.pk, DEFAULT, s.dep) ``` Essentially, this test is structured so that the table initially has a column with a default value and we add one more column with a default value later. The MERGE already verifies explicit DEFAULT and missing columns. -- 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: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org