This is an automated email from the ASF dual-hosted git repository.
cloud-fan pushed a commit to branch branch-4.x
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-4.x by this push:
new bbeb81c4d595 [SPARK-58170][SQL][TEST] Provide sql shorthand in
SparkSessionProvider
bbeb81c4d595 is described below
commit bbeb81c4d595f19d7cffb98f72c73fa8c85b6dbd
Author: Matthis Gördel <[email protected]>
AuthorDate: Fri Aug 7 19:27:18 2026 +0800
[SPARK-58170][SQL][TEST] Provide sql shorthand in SparkSessionProvider
### What changes were proposed in this pull request?
Moves the definition of the `sql(...)` shorthand from `QueryTest` to
`SparkSessionProvider`.
### Why are the changes needed?
This makes the shorthand available in `SessionQueryTest` (c.f.
https://github.com/apache/spark/pull/56190).
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
This change is covered by existing changes like e.g. `QueryTestSuite.
### Was this patch authored or co-authored using generative AI tooling?
No
Closes #57300 from fwc/sparksessionprovider-add-sql-shorthand.
Lead-authored-by: Matthis Gördel <[email protected]>
Co-authored-by: Matthis Gördel <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
(cherry picked from commit f982c8e34547acbc76dd7398e62632acc28df639)
Signed-off-by: Wenchen Fan <[email protected]>
---
.../test/scala/org/apache/spark/sql/connect/SessionQueryTest.scala | 2 +-
.../scala/org/apache/spark/sql/connect/SparkSessionProvider.scala | 2 ++
sql/core/src/test/scala/org/apache/spark/sql/QueryTest.scala | 3 ---
.../spark/sql/ReplaceIntegerLiteralsWithOrdinalsDataframeSuite.scala | 1 -
.../src/test/scala/org/apache/spark/sql/SparkSessionProvider.scala | 5 +++++
.../test/scala/org/apache/spark/sql/classic/SparkSessionBinder.scala | 5 ++++-
.../scala/org/apache/spark/sql/classic/SparkSessionProvider.scala | 2 ++
.../apache/spark/sql/collation/CollationExpressionWalkerSuite.scala | 1 -
.../apache/spark/sql/execution/datasources/SchemaPruningSuite.scala | 1 -
.../org/apache/spark/sql/sources/CreateTableAsSelectSuite.scala | 1 -
.../test/scala/org/apache/spark/sql/sources/FilteredScanSuite.scala | 1 -
.../src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala | 1 -
.../test/scala/org/apache/spark/sql/sources/PrunedScanSuite.scala | 1 -
.../src/test/scala/org/apache/spark/sql/sources/SaveLoadSuite.scala | 1 -
.../src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala | 1 -
.../scala/org/apache/spark/sql/hive/execution/HiveUDFSuite.scala | 1 -
16 files changed, 14 insertions(+), 15 deletions(-)
diff --git
a/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SessionQueryTest.scala
b/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SessionQueryTest.scala
index 89e7ea90f8f4..13d9cf48638b 100644
---
a/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SessionQueryTest.scala
+++
b/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SessionQueryTest.scala
@@ -40,7 +40,7 @@ trait SessionQueryTest extends sql.SessionQueryTest with
SparkSessionBinder {
/**
* Approximates [[sql.SessionQueryTest.isDfSorted]] by inspecting the
explain string.
*/
- override def isDfSorted(df: sql.DataFrame): Boolean = df match {
+ override def isDfSorted(df: org.apache.spark.sql.DataFrame): Boolean = df
match {
case df: DataFrame =>
sortOperator.unanchored.matches(df.explainString(extended = false))
case df => super.isDfSorted(df)
}
diff --git
a/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SparkSessionProvider.scala
b/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SparkSessionProvider.scala
index 959e7fd89939..d139f2076df7 100644
---
a/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SparkSessionProvider.scala
+++
b/sql/connect/server/src/test/scala/org/apache/spark/sql/connect/SparkSessionProvider.scala
@@ -25,4 +25,6 @@ import org.apache.spark.sql
*/
trait SparkSessionProvider extends sql.SparkSessionProvider {
protected override def spark: SparkSession
+
+ override protected def sql(query: String): DataFrame = spark.sql(query)
}
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/QueryTest.scala
b/sql/core/src/test/scala/org/apache/spark/sql/QueryTest.scala
index 02cb61787abc..04d633698604 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/QueryTest.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/QueryTest.scala
@@ -282,9 +282,6 @@ trait QueryTestBase
protected def sparkContext = spark.sparkContext
- // Shorthand for running a query using our SparkSession
- protected lazy val sql: String => DataFrame = spark.sql _
-
/**
* A helper object for importing SQL implicits.
*
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/ReplaceIntegerLiteralsWithOrdinalsDataframeSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/ReplaceIntegerLiteralsWithOrdinalsDataframeSuite.scala
index 5c3b6a6ec696..92f54b553053 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/ReplaceIntegerLiteralsWithOrdinalsDataframeSuite.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/ReplaceIntegerLiteralsWithOrdinalsDataframeSuite.scala
@@ -24,7 +24,6 @@ import org.apache.spark.sql.internal.SQLConf
import org.apache.spark.sql.test.SharedSparkSession
class ReplaceIntegerLiteralsWithOrdinalsDataframeSuite extends
SharedSparkSession {
- import testImplicits._
test("Group by ordinal - Dataframe") {
val query = "SELECT * FROM VALUES(1,2),(1,3),(2,4)"
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionProvider.scala
b/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionProvider.scala
index 67ff122efec8..1f0aaa1f39bf 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionProvider.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionProvider.scala
@@ -26,4 +26,9 @@ package org.apache.spark.sql
*/
trait SparkSessionProvider {
protected def spark: SparkSession
+
+ /**
+ * Shorthand for running a query using the [[SparkSession]]
+ */
+ protected def sql(query: String): DataFrame = spark.sql(query)
}
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionBinder.scala
b/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionBinder.scala
index 2f79876d841d..71c44cfd05b1 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionBinder.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionBinder.scala
@@ -22,6 +22,9 @@ import org.apache.spark.{sql, SparkFunSuite}
/**
* Overrides [[spark]] to provide a [[SparkSession classic.SparkSession]]
*/
-trait SparkSessionBinder extends sql.SparkSessionBinder { self: SparkFunSuite
=>
+trait SparkSessionBinder
+ extends sql.SparkSessionBinder
+ with SparkSessionProvider { self: SparkFunSuite =>
+
override protected def spark: SparkSession =
super.spark.asInstanceOf[SparkSession]
}
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionProvider.scala
b/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionProvider.scala
index 77de0db4bf68..288c1fe87958 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionProvider.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/classic/SparkSessionProvider.scala
@@ -21,4 +21,6 @@ import org.apache.spark.sql
trait SparkSessionProvider extends sql.SparkSessionProvider {
override protected def spark: SparkSession
+
+ override protected def sql(query: String): DataFrame = spark.sql(query)
}
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/collation/CollationExpressionWalkerSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/collation/CollationExpressionWalkerSuite.scala
index 41be966fdfef..51b2fefafce2 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/collation/CollationExpressionWalkerSuite.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/collation/CollationExpressionWalkerSuite.scala
@@ -34,7 +34,6 @@ import org.apache.spark.util.Utils
* collations
*/
class CollationExpressionWalkerSuite extends SharedSparkSession {
- import testImplicits._
// Trait to distinguish different cases for generation
sealed trait CollationType
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/SchemaPruningSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/SchemaPruningSuite.scala
index 2b498cdf3c15..f79d9cb8a0e7 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/SchemaPruningSuite.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/SchemaPruningSuite.scala
@@ -860,7 +860,6 @@ abstract class SchemaPruningSuite
testSchemaPruning("select nested field in Expand") {
import org.apache.spark.sql.catalyst.dsl.expressions._
- import testImplicits.castToImpl
val query1 = Expand(
Seq(
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/sources/CreateTableAsSelectSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/sources/CreateTableAsSelectSuite.scala
index 95c2fcbd7b5d..34d87b6f91d7 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/sources/CreateTableAsSelectSuite.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/sources/CreateTableAsSelectSuite.scala
@@ -30,7 +30,6 @@ import org.apache.spark.util.Utils
class CreateTableAsSelectSuite extends DataSourceTest with SharedSparkSession {
import testImplicits._
- protected override lazy val sql = spark.sql _
private var path: File = null
override def beforeAll(): Unit = {
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/sources/FilteredScanSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/sources/FilteredScanSuite.scala
index 786e50eea2e7..cbd92f0af190 100644
---
a/sql/core/src/test/scala/org/apache/spark/sql/sources/FilteredScanSuite.scala
+++
b/sql/core/src/test/scala/org/apache/spark/sql/sources/FilteredScanSuite.scala
@@ -134,7 +134,6 @@ object ColumnsRequired {
}
class FilteredScanSuite extends DataSourceTest with SharedSparkSession {
- protected override lazy val sql = spark.sql _
override def beforeAll(): Unit = {
super.beforeAll()
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala
index f2645e32e8a9..accf6439234a 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala
@@ -60,7 +60,6 @@ case class SimpleInsert(userSpecifiedSchema:
StructType)(@transient val sparkSes
class InsertSuite extends DataSourceTest with SharedSparkSession {
import testImplicits._
- protected override lazy val sql = spark.sql _
private var path: File = null
override def beforeAll(): Unit = {
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/sources/PrunedScanSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/sources/PrunedScanSuite.scala
index f242f75f39f2..4e48d0246e57 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/sources/PrunedScanSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/sources/PrunedScanSuite.scala
@@ -54,7 +54,6 @@ case class SimplePrunedScan(from: Int, to: Int)(@transient
val sparkSession: Spa
}
class PrunedScanSuite extends DataSourceTest with SharedSparkSession {
- protected override lazy val sql = spark.sql _
override def beforeAll(): Unit = {
super.beforeAll()
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/sources/SaveLoadSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/sources/SaveLoadSuite.scala
index 1e0d9bd9990e..571b558c3c76 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/sources/SaveLoadSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/sources/SaveLoadSuite.scala
@@ -32,7 +32,6 @@ import org.apache.spark.util.Utils
class SaveLoadSuite extends DataSourceTest with SharedSparkSession with
BeforeAndAfter {
import testImplicits._
- protected override lazy val sql = spark.sql _
private var originalDefaultSource: String = null
private var path: File = null
private var df: DataFrame = null
diff --git
a/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
b/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
index eac77c293820..a22fecc237e1 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
@@ -123,7 +123,6 @@ class LegacyTimestampSource extends RelationProvider {
}
class TableScanSuite extends DataSourceTest with SharedSparkSession {
- protected override lazy val sql = spark.sql _
private lazy val tableWithSchemaExpected = (1 to 10).map { i =>
Row(
diff --git
a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveUDFSuite.scala
b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveUDFSuite.scala
index 01af6b3cc570..8999ff12d3c2 100644
---
a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveUDFSuite.scala
+++
b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveUDFSuite.scala
@@ -59,7 +59,6 @@ case class ListStringCaseClass(l: Seq[String])
@SlowHiveTest
class HiveUDFSuite extends QueryTest with TestHiveSingleton {
import spark.implicits._
- import testImplicits.castToImpl
import spark.udf
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]