Package

org.apache.spark.sql.catalyst

planning

Permalink

package planning

Contains classes for enumerating possible physical plans for a given logical query plan.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. planning
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class GenericStrategy[PhysicalPlan <: TreeNode[PhysicalPlan]] extends Logging

    Permalink

    Given a LogicalPlan, returns a list of PhysicalPlans that can be used for execution.

    Given a LogicalPlan, returns a list of PhysicalPlans that can be used for execution. If this strategy does not apply to the give logical operation then an empty list should be returned.

  2. abstract class QueryPlanner[PhysicalPlan <: TreeNode[PhysicalPlan]] extends AnyRef

    Permalink

    Abstract class for transforming LogicalPlans into physical plans.

    Abstract class for transforming LogicalPlans into physical plans. Child classes are responsible for specifying a list of GenericStrategy objects that each of which can return a list of possible physical plan options. If a given strategy is unable to plan all of the remaining operators in the tree, it can call planLater, which returns a placeholder object that will be filled in using other available strategies.

    TODO: RIGHT NOW ONLY ONE PLAN IS RETURNED EVER... PLAN SPACE EXPLORATION WILL BE IMPLEMENTED LATER.

    PhysicalPlan

    The type of physical plan produced by this QueryPlanner

Value Members

  1. object ExtractEquiJoinKeys extends Logging with PredicateHelper

    Permalink

    A pattern that finds joins with equality conditions that can be evaluated using equi-join.

    A pattern that finds joins with equality conditions that can be evaluated using equi-join.

    Null-safe equality will be transformed into equality as joining key (replace null with default value).

  2. object ExtractFiltersAndInnerJoins extends PredicateHelper

    Permalink

    A pattern that collects the filter and inner joins.

    A pattern that collects the filter and inner joins.

    Filter | inner Join / \ ----> (Seq(plan0, plan1, plan2), conditions) Filter plan2 | inner join / \ plan0 plan1

    Note: This pattern currently only works for left-deep trees.

  3. object PhysicalAggregation

    Permalink

    An extractor used when planning the physical execution of an aggregation.

    An extractor used when planning the physical execution of an aggregation. Compared with a logical aggregation, the following transformations are performed:

    • Unnamed grouping expressions are named so that they can be referred to across phases of aggregation
    • Aggregations that appear multiple times are deduplicated.
    • The computation of the aggregations themselves is separated from the final result. For example, the count in count + 1 will be split into an AggregateExpression and a final computation that computes count.resultAttribute + 1.
  4. object PhysicalOperation extends PredicateHelper

    Permalink

    A pattern that matches any number of project or filter operations on top of another relational operator.

    A pattern that matches any number of project or filter operations on top of another relational operator. All filter operators are collected and their conditions are broken up and returned together with the top project operator. Aliases are in-lined/substituted if necessary.

Inherited from AnyRef

Inherited from Any

Ungrouped