case class InlineCTE(alwaysInline: Boolean = false) extends Rule[LogicalPlan] with Product with Serializable
Inlines CTE definitions into corresponding references if either of the conditions satisfies: 1. The CTE definition does not contain any non-deterministic expressions or contains attribute references to an outer query. If this CTE definition references another CTE definition that has non-deterministic expressions, it is still OK to inline the current CTE definition. 2. The CTE definition is only referenced once throughout the main query and all the subqueries.
CTE definitions that appear in subqueries and are not inlined will be pulled up to the main query level.
- alwaysInline
if true, inline all CTEs in the query plan.
- Alphabetic
- By Inheritance
- InlineCTE
- Serializable
- Serializable
- Product
- Equals
- Rule
- Logging
- SQLConfHelper
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
InlineCTE(alwaysInline: Boolean = false)
- alwaysInline
if true, inline all CTEs in the query plan.
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
- val alwaysInline: Boolean
- def apply(plan: LogicalPlan): LogicalPlan
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
buildCTEMap(plan: LogicalPlan, cteMap: Map[Long, (CTERelationDef, Int, Map[Long, Int])], collectCTERefs: (CTERelationRef) ⇒ Unit = _ => ()): Unit
Accumulates all the CTEs from a plan into a special map.
Accumulates all the CTEs from a plan into a special map.
- plan
The plan to collect the CTEs from
- cteMap
A mutable map that accumulates the CTEs and their reference information by CTE ids. The value of the map is tuple whose elements are:
- The CTE definition
- The number of incoming references to the CTE. This includes references from other CTEs and regular places.
- A mutable inner map that tracks outgoing references (counts) to other CTEs.
- collectCTERefs
A function to collect CTE references so that the caller side can do some bookkeeping work.
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
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
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
log: Logger
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logName: String
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
lazy val
ruleId: RuleId
- Attributes
- protected
- Definition Classes
- Rule
-
val
ruleName: String
Name for this rule, automatically inferred based on class name.
Name for this rule, automatically inferred based on class name.
- Definition Classes
- Rule
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()