org.apache.spark.sql.catalyst.analysis.resolver
ExpressionIdAssigner
Companion class ExpressionIdAssigner
object ExpressionIdAssigner
- Alphabetic
- By Inheritance
- ExpressionIdAssigner
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type Mapping = HashMap[ExprId, ExprId]
- type Stack = ArrayDeque[StackEntry]
- case class StackEntry(mapping: Option[Mapping] = None, outerMapping: Option[Mapping] = None, childMappings: ArrayDeque[Mapping] = new ArrayDeque[Mapping]) extends Product with Serializable
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 assertOutputsHaveNoConflictingExpressionIds(outputs: Seq[Seq[Attribute]]): Unit
Assert that
outputsdon't have conflicting expression IDs. - def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def doOutputsHaveConflictingExpressionIds(outputs: Seq[Seq[Attribute]]): Boolean
Check whether
outputshave conflicting expression IDs.Check whether
outputshave conflicting expression IDs. This is only relevant for child outputs of multi-child operators. Conflicting attributes are only checked between different child branches, since one branch may output the same attribute multiple times. Hence, we use only distinct expression IDs from each output.-- This is OK, one operator branch outputs its attribute multiple times SELECT col1, col1 FROM t1;
-- If both children of this [[Union]] operator output `col1` with the same expression ID, -- the analyzer is broken. SELECT col1 FROM t1 UNION ALL SELECT col1 FROM t1 ;
One edge case is WithCTE - we don't have to check conflicts between CTERelationDefs and the plan itself.
- 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()
- 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)