{"id":"d79ca201-9237-4948-94b3-f03ffaf0c0b1","task":"Enable Delta Lake row tracking for stable row IDs across MERGE and UPDATE","domain":"data-engineering","steps":["Set delta.enableRowTracking = true in TBLPROPERTIES at CREATE TABLE time, or via ALTER TABLE ... SET TBLPROPERTIES on Delta Lake 3.3+ for existing tables.","To default it for all new tables in a session/cluster, set spark.databricks.delta.properties.defaults.enableRowTracking = true.","Confirm the table's protocol supports it — row tracking requires table-features writer version 7, so older readers/writers may need an explicit protocol upgrade.","Query the stable identifiers via the hidden metadata columns _metadata.row_id and _metadata.row_commit_version instead of relying on physical file/row position, which changes across compaction.","Use the row ID downstream to dedupe or join CDC-style updates without re-deriving a business key, since it survives MERGE/UPDATE rewrites of the underlying file."],"gotchas":["Once enabled, the writer-version-7 protocol upgrade cannot be downgraded — plan before enabling on a table that other tools or older readers depend on.","_metadata.row_id and _metadata.row_commit_version are explicitly not accessible when reading via Change Data Feed — row tracking and CDF don't compose on that read path."],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/d79ca201-9237-4948-94b3-f03ffaf0c0b1"}