cockroachdb / cockroachdb/cockroach
logical,txn: add schema_conflict_policy to LDR
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
Add a per-job `schema_conflict_policy` and carry it through the transactional LDR planning and source-stream paths. Initially, `pause` is the only supported policy.
The source and destination must agree on the requested policy, and mixed-version clusters that cannot preserve or honor it should fail safely.
Keep `schemaChangeAllowed` hardcoded to `false`; this ticket does not enable nullable-column skew or change the DDL allowlist.
**Out of scope:** Allowing schema changes, detecting schema boundaries, and implementing schema-conflict DLQ.
**Done when:** The policy is stored and available everywhere schema-change handling will need it, unsupported values are rejected, and a node or source cluster that does not understand the policy cannot silently ignore it.
**Notes / risk:** The policy should remain per job so adding or removing one LDR stream does not leave a table in the wrong aggregate state.
Jira issue: CRDB-66913
Epic CRDB-66920
Contributor guide
Research direction
Start in the logical and txn LDR planning and source-stream paths, tracing how per-job settings move between source and destination. Verify the existing schemaChangeAllowed=false behavior and identify validation and mixed-version compatibility checks. Done means pause is accepted and preserved per job, unsupported policies are rejected, and unaware nodes or source clusters fail safely without enabling schema changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100