Support ANSI_QUOTES in MySQL/MariaDB DDL#4452
Conversation
❌ Test FailureAnalysis: Real failure: the PR's own new test Test_MySQL_ANSIQuotes_DDL fails deterministically because the ANSI_QUOTES ADD COLUMN DDL is dropped during MySQL→ClickHouse replication, so destination column 'c' is missing (the exact bug this WIP PR targets). |
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
|
|
||
| var syncer *replication.BinlogSyncer | ||
| var stream *replication.BinlogStreamer | ||
| if internal.MySQLTestVersionIsMySQLPos() { |
There was a problem hiding this comment.
Rreviewing on the assumption that we are not going to support/validate MariaDBPos, correct?
| ) ([]byte, string) { | ||
| t.Helper() | ||
|
|
||
| streamCtx, cancel := context.WithTimeout(ctx, 30*time.Second) |
There was a problem hiding this comment.
We are timeouting in 30', what's the average time it takes for this to complete, 1/2, 1/10, ... of this time?
|
|
||
| // testDBName namespaces a database per test with a random suffix, mirroring the | ||
| // e2e suite convention, so parallel tests and reruns don't collide. | ||
| func testDBName(prefix string) string { |
There was a problem hiding this comment.
This seems generic enough to me as to be added to a common test library such as flow/e2eshared/e2eshared.go
Parse out status vars from query event and pass the flag to the tidb parser. Add an integration test that can work with binlog more freely as we can't really observe query parsing from e2e (besides the 5.7-pos configuration that doesn't have binlog metadata to fall back on, but we need a maria test as well).
As a bonus, the integration test runs in 1.2 seconds.
Closes DBI-821