fix: suppress bool->int8 false-positive column type change from TABLE_MAP metadata - #4726
Open
shockdav wants to merge 4 commits into
Open
fix: suppress bool->int8 false-positive column type change from TABLE_MAP metadata#4726shockdav wants to merge 4 commits into
shockdav wants to merge 4 commits into
Conversation
shockdav
requested a deployment
to
external-contributor
August 25, 2026 14:38 — with
GitHub Actions
Waiting
shockdav
requested a deployment
to
external-contributor
August 25, 2026 14:38 — with
GitHub Actions
Waiting
|
|
Contributor
Author
|
Pushed a second commit covering the same failure mode for ENUM: binlog TABLE_MAP encodes ENUM under the generic STRING column type, so a snapshot-typed enum column always arrives as string on the wire and warns once per row-event forever (we measured 4 enum columns on one table producing ~90 warn lines/min). Same shape of suppression, scoped to exactly the enum->string pairing. |
shockdav
had a problem deploying
to
external-contributor
August 25, 2026 17:46 — with
GitHub Actions
Failure
shockdav
temporarily deployed
to
external-contributor
August 25, 2026 17:46 — with
GitHub Actions
Inactive
…8-tablemap-false-positive
ilidemi
temporarily deployed
to
external-contributor
August 25, 2026 21:10 — with
GitHub Actions
Inactive
ilidemi
temporarily deployed
to
external-contributor
August 25, 2026 21:10 — with
GitHub Actions
Inactive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MySQL/MariaDB binlog
TABLE_MAPmetadata cannot express theTINYINT(1)display width. A column that the snapshot typed asbooltherefore always arrives on the wire asint8, andshouldReportColumnTypeChangereports it as a column type change once per row-event, forever.On a busy table this is unbounded log growth. In our deployment (MariaDB 10.x → ClickHouse,
stable-v0.37.0) a singletinyint(1)column on the hottest table produced ~34 GB of this one WARN line — about 83% of the flow-worker's total log volume — before it filled the host's disk and stalled the mirror:The source column was, and still is,
tinyint(1); nothing changed. The mirror column isBooland the data is correct either way — the warning is a pure false positive.This suppresses exactly the
bool(schema) →int8(wire) pairing, mirroring the existing MariaDB UUID/INET wire-kind special case. A real change —bool→ anything other thanint8, or any non-boolschema kind — is still reported.