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
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.

  4. trait TypeWidening extends AnyRef

    Definition Classes
    HiveTypeCoercion

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 CaseWhenCoercion extends Rule[LogicalPlan] with TypeWidening

    Coerces the type of different branches of a CASE WHEN statement to a common type.

  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 Division extends Rule[LogicalPlan]

    Hive only performs integral division with the DIV operator.

  12. object FunctionArgumentConversion extends Rule[LogicalPlan]

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

  13. object GlobalAggregates extends Rule[LogicalPlan]

    Turns projections that contain aggregate expressions into aggregations.

  14. 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.

  15. object LowercaseAttributeReferences extends Rule[LogicalPlan]

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

  16. object Once extends Strategy with Product with Serializable

    A strategy that only runs once.

  17. object PromoteStrings extends Rule[LogicalPlan]

    Promotes strings that appear in arithmetic expressions.

  18. 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.

  19. object ResolveFunctions extends Rule[LogicalPlan]

    Replaces UnresolvedFunctions with concrete Expressions.

  20. object ResolveReferences extends Rule[LogicalPlan]

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

  21. object ResolveRelations extends Rule[LogicalPlan]

    Replaces UnresolvedRelations with concrete relations from the catalog.

  22. object ResolveSortReferences extends Rule[LogicalPlan]

    In many dialects of SQL is it valid to sort by attributes that are not present in the SELECT clause.

  23. object StarExpansion extends Rule[LogicalPlan]

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

  24. 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.

  25. object UnresolvedHavingClauseAttributes extends Rule[LogicalPlan]

    This rule finds expressions in HAVING clause filters that depend on unresolved attributes.

  26. object WidenTypes extends Rule[LogicalPlan] with TypeWidening

    Widens numeric types and converts strings to numbers when appropriate.

  27. 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
  28. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  29. 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
  30. def clone(): AnyRef

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

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

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

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

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

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

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

    Definition Classes
    Any
  38. def isTraceEnabled(): Boolean

    Attributes
    protected
    Definition Classes
    Logging
  39. def log: Logger

    Attributes
    protected
    Definition Classes
    Logging
  40. def logDebug(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  41. def logDebug(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  42. def logError(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  43. def logError(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  44. def logInfo(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  45. def logInfo(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  46. def logName: String

    Attributes
    protected
    Definition Classes
    Logging
  47. def logTrace(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  48. def logTrace(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  49. def logWarning(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  50. def logWarning(msg: ⇒ String): Unit

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

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

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

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

    Definition Classes
    AnyRef
  55. def toString(): String

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

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from HiveTypeCoercion

Inherited from RuleExecutor[LogicalPlan]

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped