object DataSourceStrategy extends Strategy with Logging with CastSupport with PredicateHelper with SQLConfHelper
A Strategy for planning scans over data sources defined using the sources API.
- Alphabetic
- By Inheritance
- DataSourceStrategy
- SQLConfHelper
- PredicateHelper
- AliasHelper
- CastSupport
- SparkStrategy
- GenericStrategy
- Logging
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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
- def apply(plan: LogicalPlan): Seq[SparkPlan]
- Definition Classes
- DataSourceStrategy → GenericStrategy
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def buildBalancedPredicate(expressions: Seq[Expression], op: (Expression, Expression) => Expression): Expression
- Attributes
- protected
- Definition Classes
- PredicateHelper
- def canEvaluate(expr: Expression, plan: LogicalPlan): Boolean
- Attributes
- protected
- Definition Classes
- PredicateHelper
- def canEvaluateWithinJoin(expr: Expression): Boolean
- Attributes
- protected
- Definition Classes
- PredicateHelper
- def cast(child: Expression, dataType: DataType): Cast
- Definition Classes
- CastSupport
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def conf: SQLConf
- Definition Classes
- SQLConfHelper
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def extractPredicatesWithinOutputSet(condition: Expression, outputSet: AttributeSet): Option[Expression]
- Attributes
- protected
- Definition Classes
- PredicateHelper
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def findExpressionAndTrackLineageDown(exp: Expression, plan: LogicalPlan): Option[(Expression, LogicalPlan)]
- Definition Classes
- PredicateHelper
- def getAliasMap(exprs: Seq[NamedExpression]): AttributeMap[Alias]
- Attributes
- protected
- Definition Classes
- AliasHelper
- def getAliasMap(plan: Aggregate): AttributeMap[Alias]
- Attributes
- protected
- Definition Classes
- AliasHelper
- def getAliasMap(plan: Project): AttributeMap[Alias]
- Attributes
- protected
- Definition Classes
- AliasHelper
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getPushedDownFilters(partitionColumns: Seq[Expression], normalizedFilters: Seq[Expression]): ExpressionSet
- def hashCode(): Int
- 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 isLikelySelective(e: Expression): Boolean
- Definition Classes
- PredicateHelper
- def isNullIntolerant(expr: Expression): Boolean
- Attributes
- protected
- Definition Classes
- PredicateHelper
- 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
- def normalizeExprs(exprs: Seq[Expression], attributes: Seq[Attribute]): Seq[Expression]
The attribute name may differ from the one in the schema if the query analyzer is case insensitive.
The attribute name may differ from the one in the schema if the query analyzer is case insensitive. We should change attribute names to match the ones in the schema, so we do not need to worry about case sensitivity anymore.
- Attributes
- protected[sql]
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def outputWithNullability(output: Seq[Attribute], nonNullAttrExprIds: Seq[ExprId]): Seq[Attribute]
- Attributes
- protected
- Definition Classes
- PredicateHelper
- def planLater(plan: LogicalPlan): SparkPlan
- Attributes
- protected
- Definition Classes
- SparkStrategy → GenericStrategy
- def rebuildExpressionFromFilter(filter: Filter, translatedFilterToExpr: HashMap[Filter, Expression]): Expression
- Attributes
- protected[sql]
- def replaceAlias(expr: Expression, aliasMap: AttributeMap[Alias]): Expression
- Attributes
- protected
- Definition Classes
- AliasHelper
- def replaceAliasButKeepName(expr: NamedExpression, aliasMap: AttributeMap[Alias]): NamedExpression
- Attributes
- protected
- Definition Classes
- AliasHelper
- def selectFilters(relation: BaseRelation, predicates: Seq[Expression]): (Seq[Expression], Seq[Filter], Set[Filter])
Selects Catalyst predicate Expressions which are convertible into data source Filters and can be handled by
relation
.Selects Catalyst predicate Expressions which are convertible into data source Filters and can be handled by
relation
.- returns
A triplet of
Seq[Expression]
,Seq[Filter]
, andSeq[Filter]
. The first element contains all Catalyst predicate Expressions that are either not convertible or cannot be handled byrelation
. The second element contains all converted data source Filters that will be pushed down to the data source. The third element contains all Filters that are completely filtered at the DataSource.
- Attributes
- protected[sql]
- def splitConjunctivePredicates(condition: Expression): Seq[Expression]
- Attributes
- protected
- Definition Classes
- PredicateHelper
- def splitDisjunctivePredicates(condition: Expression): Seq[Expression]
- Attributes
- protected
- Definition Classes
- PredicateHelper
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def translateAggregate(agg: AggregateExpression): Option[AggregateFunc]
- Attributes
- protected[sql]
- def translateAggregation(aggregates: Seq[AggregateExpression], groupBy: Seq[Expression]): Option[Aggregation]
Translate aggregate expressions and group by expressions.
Translate aggregate expressions and group by expressions.
- returns
translated aggregation.
- Attributes
- protected[sql]
- def translateFilter(predicate: Expression, supportNestedPredicatePushdown: Boolean): Option[Filter]
Tries to translate a Catalyst Expression into data source Filter.
Tries to translate a Catalyst Expression into data source Filter.
- returns
a
Some[Filter]
if the input Expression is convertible, otherwise aNone
.
- Attributes
- protected[sql]
- def translateFilterWithMapping(predicate: Expression, translatedFilterToExpr: Option[HashMap[Filter, Expression]], nestedPredicatePushdownEnabled: Boolean): Option[Filter]
Tries to translate a Catalyst Expression into data source Filter.
Tries to translate a Catalyst Expression into data source Filter.
- predicate
The input Expression to be translated as Filter
- translatedFilterToExpr
An optional map from leaf node filter expressions to its translated Filter. The map is used for rebuilding Expression from Filter.
- nestedPredicatePushdownEnabled
Whether nested predicate pushdown is enabled.
- returns
a
Some[Filter]
if the input Expression is convertible, otherwise aNone
.
- Attributes
- protected[sql]
- def translateRuntimeFilter(expr: Expression): Option[Filter]
Translates a runtime filter into a data source filter.
Translates a runtime filter into a data source filter.
Runtime filters usually contain a subquery that must be evaluated before the translation. If the underlying subquery hasn't completed yet, this method will throw an exception.
- Attributes
- protected[sql]
- def translateSortOrders(sortOrders: Seq[SortOrder]): Seq[SortOrder]
- Attributes
- protected[sql]
- def trimAliases(e: Expression): Expression
- Attributes
- protected
- Definition Classes
- AliasHelper
- def trimNonTopLevelAliases[T <: Expression](e: T): T
- Attributes
- protected
- Definition Classes
- AliasHelper
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()