cloud-fan commented on code in PR #54554:
URL: https://github.com/apache/spark/pull/54554#discussion_r2867243208
##########
sql/core/src/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala:
##########
@@ -337,6 +362,127 @@ class SQLQueryTestSuite extends QueryTest with
SharedSparkSession with SQLHelper
}
}
+ localSparkSession
+ }
+
+ /**
+ * Runs queries in debug mode. Only commands and --DEBUG-marked queries are
executed.
+ * Failed debug queries print the full error stacktrace. Results are
compared against
+ * the golden file. The test always fails at the end to prevent accidental
commits.
+ *
+ * To inspect the DataFrame interactively, set a breakpoint at the line where
+ * `localSparkSession.sql(sql)` is called inside this method, then evaluate
the DataFrame
+ * in the debugger (e.g., `df.queryExecution.analyzed`, `df.explain(true)`).
+ */
+ protected def runDebugQueries(
+ queriesWithDebug: Seq[(String, Boolean)],
+ testCase: TestCase,
+ sparkConfigSet: Seq[(String, String)]): Unit = {
+ val localSparkSession = setupLocalSession(testCase, sparkConfigSet)
+ val lowercaseTestCase = testCase.name.toLowerCase(Locale.ROOT)
+ val segmentsPerQuery = 3
+
+ val goldenFileExists = new File(testCase.resultFile).exists()
+ val segments = if (goldenFileExists) {
+ Files.readString(new File(testCase.resultFile).toPath).split("--
!query.*\n")
+ } else {
+ Array.empty[String]
+ }
+
+ queriesWithDebug.zipWithIndex.foreach { case ((sql, isDebug), i) =>
+ val isCommand = try {
+
localSparkSession.sessionState.sqlParser.parsePlan(sql).isInstanceOf[Command]
+ } catch {
+ case _: ParseException => false
+ }
+
+ if (isCommand) {
+ localSparkSession.sql(sql).collect()
+ } else if (isDebug) {
+ // Capture exception stacktrace if the query fails.
+ var exceptionTrace: Option[String] = None
Review Comment:
same reason as above, when we run all queries, this is not useful.
--
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]