Skip to content

Add check for MySQL system variable binlog_row_metadata when using new CTFS syntax#35839

Open
patrickwwbutler wants to merge 4 commits intoMaterializeInc:mainfrom
patrickwwbutler:patrick/mysql-binlog-check
Open

Add check for MySQL system variable binlog_row_metadata when using new CTFS syntax#35839
patrickwwbutler wants to merge 4 commits intoMaterializeInc:mainfrom
patrickwwbutler:patrick/mysql-binlog-check

Conversation

@patrickwwbutler
Copy link
Copy Markdown
Contributor

As discussed in S&S team meeting, we should enforce that this sysvar is set when a user wants to use the new syntax, as it is a requirement for source versioning.

Description

Adds a check during purification for this sysvar, along with a corresponding new error type and testdrive.

@patrickwwbutler patrickwwbutler requested a review from a team April 2, 2026 16:14
@patrickwwbutler patrickwwbutler requested review from a team as code owners April 2, 2026 16:14
@patrickwwbutler patrickwwbutler requested a review from ohbadiah April 2, 2026 16:14
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Thanks for opening this PR! Here are a few tips to help make the review process smooth for everyone.

PR title guidelines

  • Use imperative mood: "Fix X" not "Fixed X" or "Fixes X"
  • Be specific: "Fix panic in catalog sync when controller restarts" not "Fix bug" or "Update catalog code"
  • Prefix with area if helpful: compute: , storage: , adapter: , sql:

Pre-merge checklist

  • The PR title is descriptive and will make sense in the git log.
  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).

@patrickwwbutler patrickwwbutler requested review from a team as code owners April 2, 2026 16:17
Copy link
Copy Markdown
Contributor

@martykulma martykulma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🦈

#[error(transparent)]
InvalidConnection(#[from] MySqlConnectionValidationError),
#[error(
"The MySQLsystem variable 'binlog_row_metadata' is set to an unsupported value: {setting}. Materialize requires this variable to be set to 'FULL' to use the \"CREATE TABLE FROM SOURCE\" syntax for MySQL sources."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/MySQLsystem/MySQL system/

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.

2 participants