Packages

class HybridAnalyzer extends SQLConfHelper

The HybridAnalyzer routes the unresolved logical plan between the legacy Analyzer and a single-pass Analyzer when the query that we are processing is being run from unit tests depending on the testing flags set and the structure of this unresolved logical plan:

  • If the "spark.sql.analyzer.singlePassResolver.soloRunEnabled" is "true", the HybridAnalyzer will unconditionally run the single-pass Analyzer, which would usually result in some unexpected behavior and failures. This flag is used only for development.
  • If the "spark.sql.analyzer.singlePassResolver.dualRunEnabled" is "true", the HybridAnalyzer will invoke the legacy analyzer and optionally _also_ the fixed-point one depending on the structure of the unresolved plan. This decision is based on which features are supported by the single-pass Analyzer, and the checking is implemented in the ResolverGuard. After that we validate the results using the following logic:
    • If the fixed-point Analyzer fails and the single-pass one succeeds, we throw an appropriate exception (please check the QueryCompilationErrors.fixedPointFailedSinglePassSucceeded method)
    • If both the fixed-point and the single-pass Analyzers failed, we throw the exception from the fixed-point Analyzer.
    • If the single-pass Analyzer failed, we throw an exception from its failure.
    • If both the fixed-point and the single-pass Analyzers succeeded, we compare the logical plans and output schemas, and return the resolved plan from the fixed-point Analyzer.
  • Otherwise we run the legacy analyzer.
Linear Supertypes
SQLConfHelper, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HybridAnalyzer
  2. SQLConfHelper
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new HybridAnalyzer(legacyAnalyzer: Analyzer, resolverGuard: ResolverGuard, resolver: Resolver, extendedResolutionChecks: Seq[(LogicalPlan) => Unit] = Seq.empty, checkSupportedSinglePassFeatures: Boolean = true)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(plan: LogicalPlan, tracker: QueryPlanningTracker): LogicalPlan
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  7. def conf: SQLConf

    The active config object within the current scope.

    The active config object within the current scope. See SQLConf.get for more information.

    Definition Classes
    SQLConfHelper
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  11. def getFixedPointResolutionDuration: Option[Long]
  12. def getSinglePassResolutionDuration: Option[Long]
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. def withSQLConf[T](pairs: (String, String)*)(f: => T): T

    Sets all SQL configurations specified in pairs, calls f, and then restores all SQL configurations.

    Sets all SQL configurations specified in pairs, calls f, and then restores all SQL configurations.

    Attributes
    protected
    Definition Classes
    SQLConfHelper

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from SQLConfHelper

Inherited from AnyRef

Inherited from Any

Ungrouped