You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Anish Mahto (Jira)" <ji...@apache.org> on 2026/10/14 23:03:00 UTC

[jira] [Created] (SPARK-60252) SCD1 Ignore-null support; Field Reconciliation Data Classes

Anish Mahto created SPARK-60252:
-----------------------------------

             Summary: SCD1 Ignore-null support; Field Reconciliation Data Classes
                 Key: SPARK-60252
                 URL: https://issues.apache.org/jira/browse/SPARK-60252
             Project: Spark
          Issue Type: Sub-task
          Components: Declarative Pipelines
    Affects Versions: 4.4.0
            Reporter: Anish Mahto


Introduce case classes and helpers that represent user-data fields during SCD1 ignore-null reconciliation.

SCD1 reconciliation combines a key's CDC events into one row holding the key's latest state. It first collapses the incoming microbatch to at most one row per key, then reconciles that row against the key's persisted tombstone and, on merge, against its target row. Without ignore-null, reconciliation is row-wide: one row wins every field. With ignore-null, an upsert authors a selected leaf only if it provides a non-null value, so different rows can win different fields.

`Scd1FieldToReconcile` describes one field that is reconciled as a unit. That is either a leaf of a column selected for ignore-null, or a whole column outside the selection, since every upsert authors all of that column's leaves. Reconciling it produces an `Scd1ReconciledField`, which holds the reconciled value and the sequence that authored it; the version map is built from those sequences. 

Both reconciliations, within the microbatch and against the target row, use these same two classes, so they define fields and build the version map the same way. The transition is one-way, and neither class changes behavior until follow-up tickets wire them in.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org