You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Dongjoon Hyun (Jira)" <ji...@apache.org> on 2022/06/14 07:44:00 UTC

[jira] [Resolved] (SPARK-39448) Add ReplaceCTERefWithRepartition into nonExcludableRules list

     [ https://issues.apache.org/jira/browse/SPARK-39448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dongjoon Hyun resolved SPARK-39448.
-----------------------------------
    Fix Version/s: 3.3.0
       Resolution: Fixed

Issue resolved by pull request 36847
[https://github.com/apache/spark/pull/36847]

> Add ReplaceCTERefWithRepartition into nonExcludableRules list
> -------------------------------------------------------------
>
>                 Key: SPARK-39448
>                 URL: https://issues.apache.org/jira/browse/SPARK-39448
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 3.3.0, 3.4.0
>            Reporter: Yuming Wang
>            Assignee: Yuming Wang
>            Priority: Major
>             Fix For: 3.3.0
>
>
> A unit test to test excluded rules:
> {code:scala}
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> package org.apache.spark.sql
> import org.apache.spark.internal.config.Tests.IS_TESTING
> import org.apache.spark.launcher.SparkLauncher
> import org.apache.spark.sql.catalyst.util.resourceToString
> import org.apache.spark.sql.internal.SQLConf
> // scalastyle:off println
> object ExcludedRulesTestSuite extends TPCDSBase {
>   override val spark = SparkSession.builder()
>     .appName(this.getClass.getSimpleName)
>     .master("local[40]")
>     .config(SparkLauncher.DRIVER_MEMORY, "4g")
>     .config(SQLConf.SHUFFLE_PARTITIONS.key, 2)
>     .getOrCreate()
>   override def injectStats: Boolean = true
>   createTables()
>   private lazy val excludableRules = spark.sessionState.optimizer.batches
>     .flatMap(_.rules.map(_.ruleName))
>     .distinct
>     .filterNot(spark.sessionState.optimizer.nonExcludableRules.contains)
>   def main(args: Array[String]): Unit = {
>     System.setProperty(IS_TESTING.key, "true")
>     tpcdsQueries.foreach { name =>
>       val queryString = resourceToString(s"tpcds/$name.sql",
>         classLoader = Thread.currentThread().getContextClassLoader)
>       excludableRules.foreach { rule =>
>         println(name + ": " + rule)
>         try {
>           withSQLConf(SQLConf.OPTIMIZER_EXCLUDED_RULES.key -> rule) {
>             sql(queryString).collect()
>           }
>         } catch {
>           case e: Exception =>
>             println("Exception: " + e.getMessage)
>         }
>       }
>     }
>     tpcdsQueriesV2_7_0.foreach { name =>
>       val queryString = resourceToString(s"tpcds-v2.7.0/$name.sql",
>         classLoader = Thread.currentThread().getContextClassLoader)
>       excludableRules.foreach { rule =>
>         println("tpcds-v2.7.0 " + name + ": " + rule)
>         try {
>           withSQLConf(SQLConf.OPTIMIZER_EXCLUDED_RULES.key -> rule) {
>             sql(queryString).collect()
>           }
>         } catch {
>           case e: Exception =>
>             println("Exception: " + e.getMessage)
>         }
>       }
>     }
>     modifiedTPCDSQueries.foreach { name =>
>       val queryString = resourceToString(s"tpcds-modifiedQueries/$name.sql",
>         classLoader = Thread.currentThread().getContextClassLoader)
>       excludableRules.foreach { rule =>
>         println("tpcds-modifiedQueries " + name + ": " + rule)
>         try {
>           withSQLConf(SQLConf.OPTIMIZER_EXCLUDED_RULES.key -> rule) {
>             sql(queryString).collect()
>           }
>         } catch {
>           case e: Exception =>
>             println("Exception: " + e.getMessage)
>         }
>       }
>     }
>     // scalastyle:on println
>   }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org