From 317f3137aefa01f8eb2da753b147b1cb3d5ab7bf Mon Sep 17 00:00:00 2001 From: "tanel.kiis@gmail.com" Date: Sat, 19 Sep 2020 08:02:34 +0300 Subject: [PATCH] Experiment with SQLQueryTestSuite --- .../spark/sql/catalyst/optimizer/Optimizer.scala | 13 +++++++++++-- .../org/apache/spark/sql/SQLQueryTestSuite.scala | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala index b7791cd442694..91e37225d164e 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala @@ -293,8 +293,17 @@ abstract class Optimizer(catalogManager: CatalogManager) * if necessary, instead of this method. */ final override def batches: Seq[Batch] = { - val excludedRulesConf = - SQLConf.get.optimizerExcludedRules.toSeq.flatMap(Utils.stringToSeq) + val excludedRulesConf = { + val excludedRulesConf = SQLConf.get.optimizerExcludedRules.toSeq.flatMap(Utils.stringToSeq) + if (excludedRulesConf.contains("*")) { + defaultBatches.flatMap { batch => + batch.rules.map(_.ruleName) + } + } else { + excludedRulesConf + } + } + val excludedRules = excludedRulesConf.filter { ruleName => val nonExcludable = nonExcludableRules.contains(ruleName) if (nonExcludable) { diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala index b7cf0798a9d4b..0f992f32db001 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala @@ -335,7 +335,7 @@ class SQLQueryTestSuite extends QueryTest with SharedSparkSession with SQLHelper val configSets = configDims.values.foldLeft(Seq(Seq[(String, String)]())) { (res, dim) => dim.flatMap { configSet => res.map(_ ++ configSet) } - } + } ++ Seq(Seq(("spark.sql.optimizer.excludedRules", "*"))) configSets.foreach { configSet => try {