Packages

case class AnalysisContext(catalogAndNamespace: Seq[String] = Nil, nestedViewDepth: Int = 0, maxNestedViewDepth: Int = -1, relationCache: Map[(Seq[String], Option[TimeTravelSpec]), LogicalPlan] = mutable.Map.empty, referredTempViewNames: Seq[Seq[String]] = Seq.empty, referredTempFunctionNames: Set[String] = mutable.Set.empty, referredTempVariableNames: Seq[Seq[String]] = Seq.empty, outerPlan: Option[LogicalPlan] = None, isExecuteImmediate: Boolean = false, collation: Option[String] = None, singlePassResolverBridgeState: Option[AnalyzerBridgeState] = None) extends Product with Serializable

Provides a way to keep state during the analysis, mostly for resolving views and subqueries. This enables us to decouple the concerns of analysis environment from the catalog and resolve star expressions in subqueries that reference the outer query plans. The state that is kept here is per-query.

Note this is thread local.

catalogAndNamespace

The catalog and namespace used in the view resolution. This overrides the current catalog and namespace when resolving relations inside views.

nestedViewDepth

The nested depth in the view resolution, this enables us to limit the depth of nested views.

maxNestedViewDepth

The maximum allowed depth of nested view resolution.

relationCache

A mapping from qualified table names and time travel spec to resolved relations. This can ensure that the table is resolved only once if a table is used multiple times in a query.

referredTempViewNames

All the temp view names referred by the current view we are resolving. It's used to make sure the relation resolution is consistent between view creation and view resolution. For example, if t was a permanent table when the current view was created, it should still be a permanent table when resolving the current view, even if a temp view t has been created.

outerPlan

The query plan from the outer query that can be used to resolve star expressions in a subquery.

isExecuteImmediate

Whether the current plan is created by EXECUTE IMMEDIATE. Used when resolving variables, as SQL Scripting local variables should not be visible from EXECUTE IMMEDIATE.

Linear Supertypes
Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AnalysisContext
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new AnalysisContext(catalogAndNamespace: Seq[String] = Nil, nestedViewDepth: Int = 0, maxNestedViewDepth: Int = -1, relationCache: Map[(Seq[String], Option[TimeTravelSpec]), LogicalPlan] = mutable.Map.empty, referredTempViewNames: Seq[Seq[String]] = Seq.empty, referredTempFunctionNames: Set[String] = mutable.Set.empty, referredTempVariableNames: Seq[Seq[String]] = Seq.empty, outerPlan: Option[LogicalPlan] = None, isExecuteImmediate: Boolean = false, collation: Option[String] = None, singlePassResolverBridgeState: Option[AnalyzerBridgeState] = None)

    catalogAndNamespace

    The catalog and namespace used in the view resolution. This overrides the current catalog and namespace when resolving relations inside views.

    nestedViewDepth

    The nested depth in the view resolution, this enables us to limit the depth of nested views.

    maxNestedViewDepth

    The maximum allowed depth of nested view resolution.

    relationCache

    A mapping from qualified table names and time travel spec to resolved relations. This can ensure that the table is resolved only once if a table is used multiple times in a query.

    referredTempViewNames

    All the temp view names referred by the current view we are resolving. It's used to make sure the relation resolution is consistent between view creation and view resolution. For example, if t was a permanent table when the current view was created, it should still be a permanent table when resolving the current view, even if a temp view t has been created.

    outerPlan

    The query plan from the outer query that can be used to resolve star expressions in a subquery.

    isExecuteImmediate

    Whether the current plan is created by EXECUTE IMMEDIATE. Used when resolving variables, as SQL Scripting local variables should not be visible from EXECUTE IMMEDIATE.

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. val catalogAndNamespace: Seq[String]
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  7. val collation: Option[String]
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. def getSinglePassResolverBridgeState: Option[AnalyzerBridgeState]
  11. val isExecuteImmediate: Boolean
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. val maxNestedViewDepth: Int
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. val nestedViewDepth: Int
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  18. val outerPlan: Option[LogicalPlan]
  19. def productElementNames: Iterator[String]
    Definition Classes
    Product
  20. val referredTempFunctionNames: Set[String]
  21. val referredTempVariableNames: Seq[Seq[String]]
  22. val referredTempViewNames: Seq[Seq[String]]
  23. val relationCache: Map[(Seq[String], Option[TimeTravelSpec]), LogicalPlan]
  24. def setSinglePassResolverBridgeState(bridgeState: Option[AnalyzerBridgeState]): Unit
  25. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

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 Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped