Skip to content

DeltaMergeIntoClause — WHEN Clause

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

Contract

Actions

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

condition: Option[Expression]

Note

condition is always given when DeltaMergeIntoClauses are created.

Implementations

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:

toActions

toActions(
  assignments: Seq[Assignment]): Seq[Expression]
toActions(
  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

resolvedActions: Seq[DeltaMergeAction]

resolvedActions...FIXME

resolvedActions is used when: