Packages

case class DeltaMergeInto(target: LogicalPlan, source: LogicalPlan, condition: Expression, matchedClauses: Seq[DeltaMergeIntoMatchedClause], notMatchedClause: Option[DeltaMergeIntoInsertClause], migratedSchema: Option[StructType] = None) extends LogicalPlan with Command with Product with Serializable

Merges changes specified in the source plan into a target table, based on the given search condition and the actions to perform when the condition is matched or not matched by the rows.

The syntax of the MERGE statement is as follows.

MERGE INTO <target_table_with_alias>
USING <source_table_with_alias>
ON <search_condition>
[ WHEN MATCHED [ AND <condition> ] THEN <matched_action> ]
[ WHEN MATCHED [ AND <condition> ] THEN <matched_action> ]
[ WHEN NOT MATCHED [ AND <condition> ] THEN <not_matched_action> ]

where
<matched_action> = DELETE | UPDATE SET column1 = value1 [, column2 = value2 ...]
<not_matched_action> = INSERT (column1 [, column2 ...]) VALUES (expr1 [, expr2 ...])

- There can be 1, 2 or 3 WHEN clauses. Of these, at most 2 can be WHEN MATCHED clauses, and at most 1 can be WHEN NOT MATCHED clause. - WHEN MATCHED clauses:

  • There can be at most one UPDATE action and DELETE action in the MATCHED clauses.
  • Each WHEN MATCHED clause can have an optional condition. However, If there are two WHEN MATCHED clauses, then the first one must have a condition.
  • When there are two MATCHED clauses and there are conditions (or the lack of) that allow a row to match both MATCHED clauses, then the first clause/action is executed. In other words, the order of the MATCHED clauses matter. - WHEN NOT MATCHED clause:
  • Can only have the INSERT action. If present, it must be the last WHEN clause.
  • WHEN NOT MATCHED clause can have an optional condition.
Linear Supertypes
Serializable, Serializable, Command, LogicalPlan, Logging, QueryPlanConstraints, ConstraintHelper, LogicalPlanStats, AnalysisHelper, QueryPlan[LogicalPlan], TreeNode[LogicalPlan], Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DeltaMergeInto
  2. Serializable
  3. Serializable
  4. Command
  5. LogicalPlan
  6. Logging
  7. QueryPlanConstraints
  8. ConstraintHelper
  9. LogicalPlanStats
  10. AnalysisHelper
  11. QueryPlan
  12. TreeNode
  13. Product
  14. Equals
  15. AnyRef
  16. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DeltaMergeInto(target: LogicalPlan, source: LogicalPlan, condition: Expression, matchedClauses: Seq[DeltaMergeIntoMatchedClause], notMatchedClause: Option[DeltaMergeIntoInsertClause], migratedSchema: Option[StructType] = None)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. lazy val allAttributes: AttributeSeq
    Definition Classes
    QueryPlan
  5. def analyzed: Boolean
    Definition Classes
    AnalysisHelper
  6. def apply(number: Int): TreeNode[_]
    Definition Classes
    TreeNode
  7. def argString: String
    Definition Classes
    TreeNode
  8. def asCode: String
    Definition Classes
    TreeNode
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def assertNotAnalysisRule(): Unit
    Attributes
    protected
    Definition Classes
    AnalysisHelper
  11. final lazy val canonicalized: LogicalPlan
    Definition Classes
    QueryPlan
    Annotations
    @transient()
  12. def children: Seq[LogicalPlan]
    Definition Classes
    DeltaMergeInto → Command → TreeNode
  13. def childrenResolved: Boolean
    Definition Classes
    LogicalPlan
  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  15. def collect[B](pf: PartialFunction[LogicalPlan, B]): Seq[B]
    Definition Classes
    TreeNode
  16. def collectFirst[B](pf: PartialFunction[LogicalPlan, B]): Option[B]
    Definition Classes
    TreeNode
  17. def collectLeaves(): Seq[LogicalPlan]
    Definition Classes
    TreeNode
  18. val condition: Expression
  19. def conf: SQLConf
    Definition Classes
    QueryPlan
  20. lazy val constraints: ExpressionSet
    Definition Classes
    QueryPlanConstraints
  21. def constructIsNotNullConstraints(constraints: Set[Expression], output: Seq[Attribute]): Set[Expression]
    Definition Classes
    ConstraintHelper
  22. lazy val containsChild: Set[TreeNode[_]]
    Definition Classes
    TreeNode
  23. def doCanonicalize(): LogicalPlan
    Attributes
    protected
    Definition Classes
    QueryPlan
  24. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def expressions: Seq[Expression]
    Definition Classes
    QueryPlan
  26. def fastEquals(other: TreeNode[_]): Boolean
    Definition Classes
    TreeNode
  27. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  28. def find(f: (LogicalPlan) ⇒ Boolean): Option[LogicalPlan]
    Definition Classes
    TreeNode
  29. def flatMap[A](f: (LogicalPlan) ⇒ TraversableOnce[A]): Seq[A]
    Definition Classes
    TreeNode
  30. def foreach(f: (LogicalPlan) ⇒ Unit): Unit
    Definition Classes
    TreeNode
  31. def foreachUp(f: (LogicalPlan) ⇒ Unit): Unit
    Definition Classes
    TreeNode
  32. def generateTreeString(depth: Int, lastChildren: Seq[Boolean], builder: StringBuilder, verbose: Boolean, prefix: String, addSuffix: Boolean): StringBuilder
    Definition Classes
    TreeNode
  33. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  34. def hashCode(): Int
    Definition Classes
    TreeNode → AnyRef → Any
  35. def inferAdditionalConstraints(constraints: Set[Expression]): Set[Expression]
    Definition Classes
    ConstraintHelper
  36. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  37. def initializeLogIfNecessary(isInterpreter: Boolean): Unit
    Attributes
    protected
    Definition Classes
    Logging
  38. def innerChildren: Seq[QueryPlan[_]]
    Attributes
    protected
    Definition Classes
    QueryPlan → TreeNode
  39. def inputSet: AttributeSet
    Definition Classes
    QueryPlan
  40. final def invalidateStatsCache(): Unit
    Definition Classes
    LogicalPlanStats
  41. def isCanonicalizedPlan: Boolean
    Attributes
    protected
    Definition Classes
    QueryPlan
  42. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  43. def isStreaming: Boolean
    Definition Classes
    LogicalPlan
  44. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  45. def jsonFields: List[JField]
    Attributes
    protected
    Definition Classes
    TreeNode
  46. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  47. def logDebug(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  48. def logDebug(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  49. def logError(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  50. def logError(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  51. def logInfo(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  52. def logInfo(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  53. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  54. def logTrace(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  55. def logTrace(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  56. def logWarning(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  57. def logWarning(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  58. def makeCopy(newArgs: Array[AnyRef]): LogicalPlan
    Definition Classes
    TreeNode
  59. def map[A](f: (LogicalPlan) ⇒ A): Seq[A]
    Definition Classes
    TreeNode
  60. def mapChildren(f: (LogicalPlan) ⇒ LogicalPlan): LogicalPlan
    Definition Classes
    TreeNode
  61. def mapExpressions(f: (Expression) ⇒ Expression): DeltaMergeInto.this.type
    Definition Classes
    QueryPlan
  62. def mapProductIterator[B](f: (Any) ⇒ B)(implicit arg0: ClassTag[B]): Array[B]
    Attributes
    protected
    Definition Classes
    TreeNode
  63. val matchedClauses: Seq[DeltaMergeIntoMatchedClause]
  64. def maxRows: Option[Long]
    Definition Classes
    LogicalPlan
  65. def maxRowsPerPartition: Option[Long]
    Definition Classes
    LogicalPlan
  66. val migratedSchema: Option[StructType]
  67. def missingInput: AttributeSet
    Definition Classes
    QueryPlan
  68. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  69. def nodeName: String
    Definition Classes
    TreeNode
  70. val notMatchedClause: Option[DeltaMergeIntoInsertClause]
  71. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  72. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  73. def numberedTreeString: String
    Definition Classes
    TreeNode
  74. val origin: Origin
    Definition Classes
    TreeNode
  75. def otherCopyArgs: Seq[AnyRef]
    Attributes
    protected
    Definition Classes
    TreeNode
  76. def output: Seq[Attribute]
    Definition Classes
    DeltaMergeInto → Command → QueryPlan
  77. def outputOrdering: Seq[SortOrder]
    Definition Classes
    LogicalPlan
  78. def outputSet: AttributeSet
    Definition Classes
    QueryPlan
  79. def p(number: Int): LogicalPlan
    Definition Classes
    TreeNode
  80. def prettyJson: String
    Definition Classes
    TreeNode
  81. def printSchema(): Unit
    Definition Classes
    QueryPlan
  82. def producedAttributes: AttributeSet
    Definition Classes
    QueryPlan
  83. def references: AttributeSet
    Definition Classes
    QueryPlan
  84. def refresh(): Unit
    Definition Classes
    LogicalPlan
  85. def resolve(nameParts: Seq[String], resolver: Resolver): Option[NamedExpression]
    Definition Classes
    LogicalPlan
  86. def resolve(schema: StructType, resolver: Resolver): Seq[Attribute]
    Definition Classes
    LogicalPlan
  87. def resolveChildren(nameParts: Seq[String], resolver: Resolver): Option[NamedExpression]
    Definition Classes
    LogicalPlan
  88. def resolveExpressions(r: PartialFunction[Expression, Expression]): LogicalPlan
    Definition Classes
    AnalysisHelper
  89. def resolveOperators(rule: PartialFunction[LogicalPlan, LogicalPlan]): LogicalPlan
    Definition Classes
    AnalysisHelper
  90. def resolveOperatorsDown(rule: PartialFunction[LogicalPlan, LogicalPlan]): LogicalPlan
    Definition Classes
    AnalysisHelper
  91. def resolveOperatorsUp(rule: PartialFunction[LogicalPlan, LogicalPlan]): LogicalPlan
    Definition Classes
    AnalysisHelper
  92. def resolveQuoted(name: String, resolver: Resolver): Option[NamedExpression]
    Definition Classes
    LogicalPlan
  93. lazy val resolved: Boolean
    Definition Classes
    LogicalPlan
  94. final def sameResult(other: LogicalPlan): Boolean
    Definition Classes
    QueryPlan
  95. lazy val schema: StructType
    Definition Classes
    QueryPlan
  96. def schemaString: String
    Definition Classes
    QueryPlan
  97. final def semanticHash(): Int
    Definition Classes
    QueryPlan
  98. def simpleString: String
    Definition Classes
    QueryPlan → TreeNode
  99. val source: LogicalPlan
  100. def statePrefix: String
    Attributes
    protected
    Definition Classes
    LogicalPlan → QueryPlan
  101. def stats: Statistics
    Definition Classes
    LogicalPlanStats
  102. val statsCache: Option[Statistics]
    Attributes
    protected
    Definition Classes
    LogicalPlanStats
  103. def stringArgs: Iterator[Any]
    Attributes
    protected
    Definition Classes
    TreeNode
  104. def subqueries: Seq[LogicalPlan]
    Definition Classes
    QueryPlan
  105. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  106. val target: LogicalPlan
  107. def toJSON: String
    Definition Classes
    TreeNode
  108. def toString(): String
    Definition Classes
    TreeNode → AnyRef → Any
  109. def transform(rule: PartialFunction[LogicalPlan, LogicalPlan]): LogicalPlan
    Definition Classes
    TreeNode
  110. def transformAllExpressions(rule: PartialFunction[Expression, Expression]): DeltaMergeInto.this.type
    Definition Classes
    AnalysisHelper → QueryPlan
  111. def transformDown(rule: PartialFunction[LogicalPlan, LogicalPlan]): LogicalPlan
    Definition Classes
    AnalysisHelper → TreeNode
  112. def transformExpressions(rule: PartialFunction[Expression, Expression]): DeltaMergeInto.this.type
    Definition Classes
    QueryPlan
  113. def transformExpressionsDown(rule: PartialFunction[Expression, Expression]): DeltaMergeInto.this.type
    Definition Classes
    QueryPlan
  114. def transformExpressionsUp(rule: PartialFunction[Expression, Expression]): DeltaMergeInto.this.type
    Definition Classes
    QueryPlan
  115. def transformUp(rule: PartialFunction[LogicalPlan, LogicalPlan]): LogicalPlan
    Definition Classes
    AnalysisHelper → TreeNode
  116. def treeString(verbose: Boolean, addSuffix: Boolean): String
    Definition Classes
    TreeNode
  117. def treeString: String
    Definition Classes
    TreeNode
  118. def validConstraints: Set[Expression]
    Attributes
    protected
    Definition Classes
    QueryPlanConstraints
  119. def verboseString: String
    Definition Classes
    QueryPlan → TreeNode
  120. def verboseStringWithSuffix: String
    Definition Classes
    LogicalPlan → TreeNode
  121. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  122. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  123. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  124. def withNewChildren(newChildren: Seq[LogicalPlan]): LogicalPlan
    Definition Classes
    TreeNode

Inherited from Serializable

Inherited from Serializable

Inherited from Command

Inherited from LogicalPlan

Inherited from Logging

Inherited from QueryPlanConstraints

Inherited from ConstraintHelper

Inherited from LogicalPlanStats

Inherited from AnalysisHelper

Inherited from QueryPlan[LogicalPlan]

Inherited from TreeNode[LogicalPlan]

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped