This is an automated email from the ASF dual-hosted git repository.
maxgekk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new da51dc7aa76 [SPARK-38742][SQL][TESTS] Move the tests `MISSING_COLUMN`
from SQLQuerySuite to QueryCompilationErrorsSuite
da51dc7aa76 is described below
commit da51dc7aa7674f158fb82f9f735af7d46f6a9399
Author: panbingkun <[email protected]>
AuthorDate: Mon Apr 25 21:53:17 2022 +0300
[SPARK-38742][SQL][TESTS] Move the tests `MISSING_COLUMN` from
SQLQuerySuite to QueryCompilationErrorsSuite
### What changes were proposed in this pull request?
This pr aims to move tests for the error class MISSING_COLUMN from
SQLQuerySuite to QueryCompilationErrorsSuite, it's a followup of SPARK-37935.
### Why are the changes needed?
To improve code maintenance.
### Does this PR introduce any user-facing change?
No.
### How was this patch tested?
By running the moved tests:
```
$ build/sbt "sql/testOnly *QueryCompilationErrorsSuite*"
```
Closes #36280 from panbingkun/SPARK-38742.
Authored-by: panbingkun <[email protected]>
Signed-off-by: Max Gekk <[email protected]>
---
.../scala/org/apache/spark/sql/SQLQuerySuite.scala | 38 -------------
.../sql/errors/QueryCompilationErrorsSuite.scala | 63 ++++++++++++++++++++++
2 files changed, 63 insertions(+), 38 deletions(-)
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
index 70b38db034f..4d384d3286b 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
@@ -1114,31 +1114,6 @@ class SQLQuerySuite extends QueryTest with
SharedSparkSession with AdaptiveSpark
)
}
- test("SPARK-17863: SELECT distinct does not work correctly if order by
missing attribute") {
- checkAnswer(
- sql("""select distinct struct.a, struct.b
- |from (
- | select named_struct('a', 1, 'b', 2, 'c', 3) as struct
- | union all
- | select named_struct('a', 1, 'b', 2, 'c', 4) as struct) tmp
- |order by a, b
- |""".stripMargin),
- Row(1, 2) :: Nil)
-
- val error = intercept[AnalysisException] {
- sql("""select distinct struct.a, struct.b
- |from (
- | select named_struct('a', 1, 'b', 2, 'c', 3) as struct
- | union all
- | select named_struct('a', 1, 'b', 2, 'c', 4) as struct) tmp
- |order by struct.a, struct.b
- |""".stripMargin)
- }
- assert(error.getErrorClass == "MISSING_COLUMN")
- assert(error.messageParameters.sameElements(Array("struct.a", "a, b")))
-
- }
-
test("cast boolean to string") {
// TODO Ensure true/false string letter casing is consistent with Hive in
all cases.
checkAnswer(
@@ -2734,19 +2709,6 @@ class SQLQuerySuite extends QueryTest with
SharedSparkSession with AdaptiveSpark
}
}
- test("SPARK-21335: support un-aliased subquery") {
- withTempView("v") {
- Seq(1 -> "a").toDF("i", "j").createOrReplaceTempView("v")
- checkAnswer(sql("SELECT i from (SELECT i FROM v)"), Row(1))
-
- val e = intercept[AnalysisException](sql("SELECT v.i from (SELECT i FROM
v)"))
- assert(e.getErrorClass == "MISSING_COLUMN")
- assert(e.messageParameters.sameElements(Array("v.i",
"__auto_generated_subquery_name.i")))
-
- checkAnswer(sql("SELECT __auto_generated_subquery_name.i from (SELECT i
FROM v)"), Row(1))
- }
- }
-
test("SPARK-21743: top-most limit should not cause memory leak") {
// In unit test, Spark will fail the query if memory leak detected.
spark.range(100).groupBy("id").count().limit(1).collect()
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/errors/QueryCompilationErrorsSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/errors/QueryCompilationErrorsSuite.scala
index 8b63ba52ab8..f1325a68366 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/errors/QueryCompilationErrorsSuite.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/errors/QueryCompilationErrorsSuite.scala
@@ -409,6 +409,69 @@ class QueryCompilationErrorsSuite
"can only contain StringType as a key type for a MapType."
)
}
+
+ test("MISSING_COLUMN: SELECT distinct does not work correctly " +
+ "if order by missing attribute") {
+ checkAnswer(
+ sql(
+ """select distinct struct.a, struct.b
+ |from (
+ | select named_struct('a', 1, 'b', 2, 'c', 3) as struct
+ | union all
+ | select named_struct('a', 1, 'b', 2, 'c', 4) as struct) tmp
+ |order by a, b
+ |""".stripMargin), Row(1, 2) :: Nil)
+
+ checkErrorClass(
+ exception = intercept[AnalysisException] {
+ sql(
+ """select distinct struct.a, struct.b
+ |from (
+ | select named_struct('a', 1, 'b', 2, 'c', 3) as struct
+ | union all
+ | select named_struct('a', 1, 'b', 2, 'c', 4) as struct) tmp
+ |order by struct.a, struct.b
+ |""".stripMargin)
+ },
+ errorClass = "MISSING_COLUMN",
+ msg = """Column 'struct.a' does not exist. """ +
+ """Did you mean one of the following\? \[a, b\]; line 6 pos 9;
+ |'Sort \['struct.a ASC NULLS FIRST, 'struct.b ASC NULLS FIRST\],
true
+ |\+\- Distinct
+ | \+\- Project \[struct#\w+\.a AS a#\w+, struct#\w+\.b AS b#\w+\]
+ | \+\- SubqueryAlias tmp
+ | \+\- Union false, false
+ | :\- Project \[named_struct\(a, 1, b, 2, c, 3\) AS
struct#\w+\]
+ | : \+\- OneRowRelation
+ | \+\- Project \[named_struct\(a, 1, b, 2, c, 4\) AS
struct#\w+\]
+ | \+\- OneRowRelation
+ |""".stripMargin,
+ matchMsg = true)
+ }
+
+ test("MISSING_COLUMN - SPARK-21335: support un-aliased subquery") {
+ withTempView("v") {
+ Seq(1 -> "a").toDF("i", "j").createOrReplaceTempView("v")
+ checkAnswer(sql("SELECT i from (SELECT i FROM v)"), Row(1))
+
+ checkErrorClass(
+ exception = intercept[AnalysisException](sql("SELECT v.i from (SELECT
i FROM v)")),
+ errorClass = "MISSING_COLUMN",
+ msg = """Column 'v.i' does not exist. Did you mean one of the
following\? """ +
+ """\[__auto_generated_subquery_name.i\]; line 1 pos 7;
+ |'Project \['v.i\]
+ |\+\- SubqueryAlias __auto_generated_subquery_name
+ | \+\- Project \[i#\w+\]
+ | \+\- SubqueryAlias v
+ | \+\- View \(`v`, \[i#\w+,j#\w+\]\)
+ | \+\- Project \[_\w+#\w+ AS i#\w+, _\w+#\w+ AS j#\w+\]
+ | \+\- LocalRelation \[_\w+#\w+, _\w+#\w+\]
+ |""".stripMargin,
+ matchMsg = true)
+
+ checkAnswer(sql("SELECT __auto_generated_subquery_name.i from (SELECT i
FROM v)"), Row(1))
+ }
+ }
}
class MyCastToString extends SparkUserDefinedFunction(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]