Skip to content

[split 16/22] db ops: QueryFormatter destination-column awareness, ALTER/CREATE quoting fixes - #1371

Open
minguyen9988 wants to merge 1 commit into
omniwatcher/split-15-sink-configfrom
omniwatcher/split-16-db-ops
Open

[split 16/22] db ops: QueryFormatter destination-column awareness, ALTER/CREATE quoting fixes#1371
minguyen9988 wants to merge 1 commit into
omniwatcher/split-15-sink-configfrom
omniwatcher/split-16-db-ops

Conversation

@minguyen9988

Copy link
Copy Markdown
Collaborator

Stacked PR: based on the previous PR in the series (omniwatcher/split-15-sink-config); 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.

Builds on the config PR (merge after it).

  • QueryFormatter.getInsertQueryUsingInputFunction: new overload accepting the destination's known columns so destination-only columns (e.g. added via ALTER TABLE ADD COLUMN before the connector saw the DDL) are OMITTED from the insert - ClickHouse then fills their DEFAULT - instead of force-binding NULL, which poisons the whole batch on non-nullable columns and replays it forever (observed as a 165/200 data-loss failure on the combined PR).
  • ClickHouseAlterTable / ClickHouseAutoCreateTable / ClickHouseCreateDatabase: identifier quoting per dotted component; ClickHouseDbConstants gains the shared column-name constants.
  • DbKafkaOffsetWriter aligned with the quoting rules.
  • QueryFormatterTest + ClickHouseAlterTableTest expanded to pin all of the above.

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).

…ting fixes

Builds on the config PR (merge after it).

- QueryFormatter.getInsertQueryUsingInputFunction: new overload accepting the destination's known columns so destination-only columns (e.g. added via ALTER TABLE ADD COLUMN before the connector saw the DDL) are OMITTED from the insert - ClickHouse then fills their DEFAULT - instead of force-binding NULL, which poisons the whole batch on non-nullable columns and replays it forever (observed as a 165/200 data-loss failure on the combined PR).
- ClickHouseAlterTable / ClickHouseAutoCreateTable / ClickHouseCreateDatabase: identifier quoting per dotted component; ClickHouseDbConstants gains the shared column-name constants.
- DbKafkaOffsetWriter aligned with the quoting rules.
- QueryFormatterTest + ClickHouseAlterTableTest expanded to pin all of the above.

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