org.apache.spark.sql.catalyst.analysis

Analyzer

class Analyzer extends RuleExecutor[LogicalPlan] with HiveTypeCoercion

Provides a logical query plan analyzer, which translates UnresolvedAttributes and UnresolvedRelations into fully typed objects using information in a schema Catalog and a FunctionRegistry.

Linear Supertypes
HiveTypeCoercion, RuleExecutor[LogicalPlan], com.typesafe.scalalogging.slf4j.Logging, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Analyzer
  2. HiveTypeCoercion
  3. RuleExecutor
  4. Logging
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Analyzer(catalog: Catalog, registry: FunctionRegistry, caseSensitive: Boolean)

Type Members

  1. case class Batch(name: String, strategy: Strategy, rules: Rule[TreeType]*) extends Product with Serializable

    A batch of rules.

  2. case class FixedPoint(maxIterations: Int) extends Strategy with Product with Serializable

    A strategy that runs until fix point or maxIterations times, whichever comes first.

  3. abstract class Strategy extends AnyRef

    An execution strategy for rules that indicates the maximum number of executions.

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. object BooleanCasts extends Rule[LogicalPlan]

    Casts to/from BooleanType are transformed into comparisons since the JVM does not consider Booleans to be numeric types.

  7. object BooleanComparisons extends Rule[LogicalPlan]

    Changes Boolean values to Bytes so that expressions like true < false can be Evaluated.

  8. object CastNulls extends Rule[LogicalPlan]

    Ensures that NullType gets casted to some other types under certain circumstances.

  9. object CheckResolution extends Rule[LogicalPlan]

    Makes sure all attributes have been resolved.

  10. object ConvertNaNs extends Rule[LogicalPlan]

    Converts string "NaN"s that are in binary operators with a NaN-able types (Float / Double) to the appropriate numeric equivalent.

  11. object FunctionArgumentConversion extends Rule[LogicalPlan]

    This ensure that the types for various functions are as expected.

  12. object GlobalAggregates extends Rule[LogicalPlan]

    Turns projections that contain aggregate expressions into aggregations.

  13. object ImplicitGenerate extends Rule[LogicalPlan]

    When a SELECT clause has only a single expression and that expression is a Generator we convert the Project to a Generate.

  14. object LowercaseAttributeReferences extends Rule[LogicalPlan]

    Makes attribute naming case insensitive by turning all UnresolvedAttributes to lowercase.

  15. object Once extends Strategy with Product with Serializable

    A strategy that only runs once.

  16. object PromoteStrings extends Rule[LogicalPlan]

    Promotes strings that appear in arithmetic expressions.

  17. object PropagateTypes extends Rule[LogicalPlan]

    Applies any changes to AttributeReference data types that are made by other rules to instances higher in the query tree.

  18. object ResolveFunctions extends Rule[LogicalPlan]

    Replaces UnresolvedFunctions with concrete Expressions.

  19. object ResolveReferences extends Rule[LogicalPlan]

    Replaces UnresolvedAttributes with concrete AttributeReferences from a logical plan node's children.

  20. object ResolveRelations extends Rule[LogicalPlan]

    Replaces UnresolvedRelations with concrete relations from the catalog.

  21. object StarExpansion extends Rule[LogicalPlan]

    Expands any references to Star (*) in project operators.

  22. object StringToIntegralCasts extends Rule[LogicalPlan]

    When encountering a cast from a string representing a valid fractional number to an integral type the jvm will throw a java.lang.NumberFormatException.

  23. object WidenTypes extends Rule[LogicalPlan]

    Widens numeric types and converts strings to numbers when appropriate.

  24. def apply(plan: LogicalPlan): LogicalPlan

    Executes the batches of rules defined by the subclass.

    Executes the batches of rules defined by the subclass. The batches are executed serially using the defined execution strategy. Within each batch, rules are also executed serially.

    Definition Classes
    RuleExecutor
  25. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  26. val batches: Seq[Batch]

    Defines a sequence of rule batches, to be overridden by the implementation.

    Defines a sequence of rule batches, to be overridden by the implementation.

    Definition Classes
    AnalyzerRuleExecutor
  27. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  29. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  30. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  31. val fixedPoint: FixedPoint

  32. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  33. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  34. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  35. lazy val logger: Logger

    Attributes
    protected
    Definition Classes
    Logging
  36. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  37. final def notify(): Unit

    Definition Classes
    AnyRef
  38. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  39. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  40. def toString(): String

    Definition Classes
    AnyRef → Any
  41. val typeCoercionRules: List[Rule[LogicalPlan]]

    Definition Classes
    HiveTypeCoercion
  42. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from HiveTypeCoercion

Inherited from RuleExecutor[LogicalPlan]

Inherited from com.typesafe.scalalogging.slf4j.Logging

Inherited from AnyRef

Inherited from Any

Ungrouped