Skip to content

[split 19/22] batch: destination-only column omission in prepared statements, TRUNCATE guard on CDC path, version sentinel guard - #1374

Open
minguyen9988 wants to merge 1 commit into
omniwatcher/split-18-core-new-classesfrom
omniwatcher/split-19-batch-statement
Open

[split 19/22] batch: destination-only column omission in prepared statements, TRUNCATE guard on CDC path, version sentinel guard#1374
minguyen9988 wants to merge 1 commit into
omniwatcher/split-18-core-new-classesfrom
omniwatcher/split-19-batch-statement

Conversation

@minguyen9988

Copy link
Copy Markdown
Collaborator

Stacked PR: based on the previous PR in the series (omniwatcher/split-18-core-new-classes); this PR's own diff is only its listed files. Merge the series in order; after the predecessor merges, retarget this PR to 2.10.0.

Merge after the db-ops PR (uses the QueryFormatter overload) and the config PR (reads disable.drop.truncate).

  • PreparedStatementFieldMapper / PreparedStatementExecutor: destination-only columns are omitted from binds (paired with the QueryFormatter overload); the CDC data path now honors disable.drop.truncate before executing TRUNCATE - previously this path applied every TRUNCATE unconditionally, so the guard silently failed to protect it.
  • GroupInsertQueryWithBatchRecords: passes the destination column set through (new overload; the old signature is kept); dead failedRecords list removed (was never read).
  • VersionSentinelGuardTest: pins that a missing version column can never silently bind the 0 sentinel (_version=0 rows lose every ReplacingMergeTree merge - silent row loss).

Part of the split of #1353 into independently mergeable sub-PRs (each <= 10 files), so the 2.10.0 branch can absorb the fixes incrementally.

Split out of #1353, which this series replaces. Each sub-PR is <= 10 files; the union of all 22 reproduces the #1353 tree exactly (verified by tree SHA).

…ATE guard on CDC path, version sentinel guard

Merge after the db-ops PR (uses the QueryFormatter overload) and the config PR (reads disable.drop.truncate).

- PreparedStatementFieldMapper / PreparedStatementExecutor: destination-only columns are omitted from binds (paired with the QueryFormatter overload); the CDC data path now honors disable.drop.truncate before executing TRUNCATE - previously this path applied every TRUNCATE unconditionally, so the guard silently failed to protect it.
- GroupInsertQueryWithBatchRecords: passes the destination column set through (new overload; the old signature is kept); dead failedRecords list removed (was never read).
- VersionSentinelGuardTest: pins that a missing version column can never silently bind the 0 sentinel (_version=0 rows lose every ReplacingMergeTree merge - silent row loss).

Part of the split of #1353 into independently mergeable sub-PRs (each <= 10 files), so the 2.10.0 branch can absorb the fixes incrementally.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant