Skip to content

Commit

Permalink
Fix DeltaAlterTableTests
Browse files Browse the repository at this point in the history
  • Loading branch information
hvanhovell committed Feb 28, 2025
1 parent f7f68c4 commit 3929e67
Showing 1 changed file with 35 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1307,8 +1307,11 @@ trait DeltaAlterTableTests extends DeltaAlterTableTestBase {
val ex = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN v1 v1 integer AFTER unknown")
}
assert(ex.getMessage.contains("Missing field unknown") ||
ex.getMessage.contains("Couldn't resolve positional argument AFTER unknown"))
checkExceptionMessage(
ex,
"Missing field unknown",
"Couldn't resolve positional argument AFTER unknown",
"A column, variable, or function parameter with name `unknown` cannot be resolved")
}
}

Expand All @@ -1320,8 +1323,11 @@ trait DeltaAlterTableTests extends DeltaAlterTableTestBase {
val ex = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN struct.v1 v1 integer AFTER unknown")
}
assert(ex.getMessage.contains("Missing field struct.unknown") ||
ex.getMessage.contains("Couldn't resolve positional argument AFTER unknown"))
checkExceptionMessage(
ex,
"Missing field struct.unknown",
"Couldn't resolve positional argument AFTER unknown",
"A column, variable, or function parameter with name `struct`.`unknown` cannot be resolved")
}
}

Expand Down Expand Up @@ -1513,15 +1519,22 @@ trait DeltaAlterTableTests extends DeltaAlterTableTestBase {
}
}

private def checkExceptionMessage(e: AnalysisException, messages: String*): Unit = {
assert(messages.exists(e.getMessage.contains), s"${e.getMessage} did not contain $messages")
}

test("CHANGE COLUMN - move unknown column") {
val df = Seq((1, "a"), (2, "b")).toDF("v1", "v2")
withDeltaTable(df) { tableName =>

val ex = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN unknown unknown string FIRST")
}
assert(ex.getMessage.contains("Missing field unknown") ||
ex.getMessage.contains("Cannot update missing field unknown"))
checkExceptionMessage(
ex,
"Missing field unknown",
"Cannot update missing field unknown",
"A column, variable, or function parameter with name `unknown` cannot be resolved")
}
}

Expand All @@ -1533,8 +1546,11 @@ trait DeltaAlterTableTests extends DeltaAlterTableTestBase {
val ex = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN struct.unknown unknown string FIRST")
}
assert(ex.getMessage.contains("Missing field struct.unknown") ||
ex.getMessage.contains("Cannot update missing field struct.unknown"))
checkExceptionMessage(
ex,
"Missing field struct.unknown",
"Cannot update missing field struct.unknown",
"A column, variable, or function parameter with name `struct`.`unknown` cannot be resolved")
}
}

Expand Down Expand Up @@ -1588,8 +1604,11 @@ trait DeltaAlterTableTests extends DeltaAlterTableTestBase {
val ex1 = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN V1 V1 integer")
}
assert(ex1.getMessage.contains("Missing field V1") ||
ex1.getMessage.contains("Cannot update missing field V1"))
checkExceptionMessage(
ex1,
"Missing field V1",
"Cannot update missing field V1",
"A column, variable, or function parameter with name `V1` cannot be resolved.")

val ex2 = intercept[ParseException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN v1 V1 integer")
Expand All @@ -1599,8 +1618,12 @@ trait DeltaAlterTableTests extends DeltaAlterTableTestBase {
val ex3 = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN v1 v1 integer AFTER V2")
}
assert(ex3.getMessage.contains("Missing field V2") ||
ex3.getMessage.contains("Couldn't resolve positional argument AFTER V2"))
checkExceptionMessage(
ex2,
"Missing field V2",
"Couldn't resolve positional argument AFTER V2",
"Renaming column is not supported in Hive-style ALTER COLUMN, " +
"please run RENAME COLUMN instead")

val ex4 = intercept[AnalysisException] {
sql(s"ALTER TABLE $tableName CHANGE COLUMN s s struct<V1:integer,v2:string> AFTER v2")
Expand Down

0 comments on commit 3929e67

Please sign in to comment.