Skip to content

DeltaMergeIntoClause — WHEN Clause

DeltaMergeIntoClause is an extension of the Expression (Spark SQL) abstraction for WHEN clauses.



actions: Seq[Expression]

Action Expressions (Spark SQL)

actions can only be the following expressions:

actions is either empty or given when DeltaMergeIntoClauses are created.

actions is empty for the following DeltaMergeIntoClauses:

actions is given when the following DeltaMergeIntoClauses are created:

Clause Type

clauseType: String

String representation of the clause type

DeltaMergeIntoClause clauseType
DeltaMergeIntoMatchedUpdateClause Update
DeltaMergeIntoMatchedDeleteClause Delete
DeltaMergeIntoNotMatchedInsertClause Insert
DeltaMergeIntoNotMatchedBySourceUpdateClause Update
DeltaMergeIntoNotMatchedBySourceDeleteClause Delete

Used when:


condition: Option[Expression]


condition is always given when DeltaMergeIntoClauses are created.


Sealed Trait

DeltaMergeIntoClause is a Scala sealed trait which means that all of the implementations are in the same compilation unit (a single file).

Verifing Actions

verifyActions(): Unit

verifyActions goes over the actions and makes sure that they are either UnresolvedStars (Spark SQL) or DeltaMergeActions.

For unsupported actions, verifyActions throws an IllegalArgumentException:

Unexpected action expression [action] in [this]

verifyActions is used when:


  assignments: Seq[Assignment]): Seq[Expression]
  colNames: Seq[UnresolvedAttribute],
  exprs: Seq[Expression],
  isEmptySeqEqualToStar: Boolean = true): Seq[Expression]

toActions requires that the numbers of colNames and exprs are the same.

toActions creates one of the following expressions based on the given colNames and isEmptySeqEqualToStar flag:

  1. UnresolvedStar for no colNames and isEmptySeqEqualToStar flag enabled
  2. DeltaMergeActions (for every pair of column name and expression based on colNames and exprs, respectively)

toActions is used when:


resolvedActions: Seq[DeltaMergeAction]


resolvedActions is used when: