Packages

object ViewHelper extends SQLConfHelper with Logging

Linear Supertypes
Logging, SQLConfHelper, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ViewHelper
  2. Logging
  3. SQLConfHelper
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. def checkCyclicViewReference(plan: LogicalPlan, path: Seq[TableIdentifier], viewIdent: TableIdentifier): Unit

    Recursively search the logical plan to detect cyclic view references, throw an AnalysisException if cycle detected.

    Recursively search the logical plan to detect cyclic view references, throw an AnalysisException if cycle detected.

    A cyclic view reference is a cycle of reference dependencies, for example, if the following statements are executed: CREATE VIEW testView AS SELECT id FROM tbl CREATE VIEW testView2 AS SELECT id FROM testView ALTER VIEW testView AS SELECT * FROM testView2 The view testView references testView2, and testView2 also references testView, therefore a reference cycle (testView -> testView2 -> testView) exists.

    plan

    the logical plan we detect cyclic view references from.

    path

    the path between the altered view and current node.

    viewIdent

    the table identifier of the altered view, we compare two views by the desc.identifier.

  2. def conf: SQLConf
    Definition Classes
    SQLConfHelper
  3. def createTemporaryViewRelation(name: TableIdentifier, session: SparkSession, replace: Boolean, getRawTempView: (String) => Option[TemporaryViewRelation], originalText: Option[String], analyzedPlan: LogicalPlan, aliasedPlan: LogicalPlan, referredTempFunctions: Seq[String]): TemporaryViewRelation

    Returns a TemporaryViewRelation that contains information about a temporary view to create, given an analyzed plan of the view.

    Returns a TemporaryViewRelation that contains information about a temporary view to create, given an analyzed plan of the view. If a temp view is to be replaced and it is cached, it will be uncached before being replaced.

    name

    the name of the temporary view to create/replace.

    session

    the spark session.

    replace

    if true and the existing view is cached, it will be uncached.

    getRawTempView

    the function that returns an optional raw plan of the local or global temporary view.

    originalText

    the original SQL text of this view, can be None if this view is created via Dataset API or spark.sql.legacy.storeAnalyzedPlanForView is set to true.

    analyzedPlan

    the logical plan that represents the view; this is used to generate the logical plan for temporary view and the view schema.

    aliasedPlan

    the aliased logical plan based on the user specified columns. If there are no user specified plans, this should be same as analyzedPlan.

  4. def generateViewProperties(properties: Map[String, String], session: SparkSession, analyzedPlan: LogicalPlan, fieldNames: Array[String], tempViewNames: Seq[Seq[String]] = Seq.empty, tempFunctionNames: Seq[String] = Seq.empty): Map[String, String]

    Generate the view properties in CatalogTable, including: 1.

    Generate the view properties in CatalogTable, including: 1. view default database that is used to provide the default database name on view resolution. 2. the output column names of the query that creates a view, this is used to map the output of the view child to the view output during view resolution. 3. the SQL configs when creating the view.

    properties

    the properties in CatalogTable.

    session

    the spark session.

    analyzedPlan

    the analyzed logical plan that represents the child of a view.

    returns

    new view properties including view default database and query column names properties.

  5. def verifyAutoGeneratedAliasesNotExists(child: LogicalPlan, isTemporary: Boolean, name: TableIdentifier): Unit
  6. def verifyTemporaryObjectsNotExists(isTemporary: Boolean, name: TableIdentifier, child: LogicalPlan, referredTempFunctions: Seq[String]): Unit

    Permanent views are not allowed to reference temp objects, including temp function and views