org.apache.spark.sql.catalyst.analysis.resolver
IdentifierAndCteSubstitutor
Companion object IdentifierAndCteSubstitutor
class IdentifierAndCteSubstitutor extends AnyRef
The IdentifierAndCteSubstitutor is responsible for substituting the IDENTIFIERs (not yet implemented) and CTE references in the unresolved logical plan before the actual resolution starts (specifically before metadata resolution). This is important for SQL features like WITH (that could confuse MetadataResolver with extra UnresolvedRelations) or IDENTIFIER (that "hides" the actual UnresolvedRelations).
We only recurse into the plan if IdentifierAndCteSubstitutor.NODES_OF_INTEREST are present. This is done so that IdentifierAndCteSubstitutor is fast and not invasive.
- Alphabetic
- By Inheritance
- IdentifierAndCteSubstitutor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new IdentifierAndCteSubstitutor()
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def substitutePlan(unresolvedPlan: LogicalPlan): LogicalPlan
This is the main entry point to the substitution process.
This is the main entry point to the substitution process. It takes
unresolvedPlanand substitutes CTEs and IDENTIFIERs (not yet implemented) that would otherwise confuse the metadata resolution process.CteRegistry has to be reset for each new invocation, because CTEs in views are analyzed in isolation.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)