Github user kiszk commented on a diff in the pull request:

    https://github.com/apache/spark/pull/23206#discussion_r238776051
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
 ---
    @@ -235,10 +235,127 @@ abstract class Optimizer(sessionCatalog: 
SessionCatalog)
        */
       def extendedOperatorOptimizationRules: Seq[Rule[LogicalPlan]] = Nil
     
    +  /**
    +   * Seq of Optimizer rule to be added after or before a rule in a 
specific batch
    +   */
    +  def optimizerRulesInOrder: Seq[RuleInOrder] = Nil
    +
    +  /**
    +   * Batches to add to the optimizer in a specific order with respect to a 
existing batch
    +   * Seq of Tuple(existing batch name, order, Batch to add).
    +   */
    +  def optimizerBatches: Seq[(String, Order.Value, Batch)] = Nil
    +
    +  /**
    +   * Return the batch after removing rules that need to be excluded
    +   */
    +  private def handleExcludedRules(batch: Batch, excludedRules: 
Seq[String]): Seq[Batch] = {
    +    // Excluded rules
    +    val filteredRules = batch.rules.filter { rule =>
    +      val exclude = excludedRules.contains(rule.ruleName)
    +      if (exclude) {
    +        logInfo(s"Optimization rule '${rule.ruleName}' is excluded from 
the optimizer.")
    +      }
    +      !exclude
    +    }
    +    if (batch.rules == filteredRules) {
    +      Seq(batch)
    +    } else if (filteredRules.nonEmpty) {
    +      Seq(Batch(batch.name, batch.strategy, filteredRules: _*))
    +    } else {
    +      logInfo(s"Optimization batch '${batch.name}' is excluded from the 
optimizer " +
    +        s"as all enclosed rules have been excluded.")
    +      Seq.empty
    +    }
    +  }
    +
    +  /**
    +   * Add the customized rules and batch in order to the optimizer batches.
    +   * excludedRules - rules that will be excluded
    --- End diff --
    
    nit: `* @param excludedRules ...`


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to