From 66c28ed9048f64a8054205df5b00bd4fa61fd1b9 Mon Sep 17 00:00:00 2001 From: "vitess-bot[bot]" <108069721+vitess-bot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 16:48:23 +0200 Subject: [PATCH] Fix `schemacopy` collation issues Signed-off-by: Arthur Schreiber --- go/mysql/schema.go | 8 ++++---- .../schema/schematracker/schemacopy.sql | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/go/mysql/schema.go b/go/mysql/schema.go index 1b3f50b31cd..ee3cb880ea2 100644 --- a/go/mysql/schema.go +++ b/go/mysql/schema.go @@ -39,13 +39,13 @@ const ( DetectSchemaChange = ` SELECT DISTINCT table_name FROM ( - SELECT table_name, column_name, ordinal_position, character_set_name, collation_name, data_type, column_key + SELECT table_name COLLATE utf8mb3_bin AS table_name, column_name COLLATE utf8mb3_general_ci AS column_name, ordinal_position, character_set_name COLLATE utf8mb3_general_ci AS character_set_name, collation_name COLLATE utf8mb3_general_ci AS collation_name, data_type COLLATE utf8mb3_bin AS data_type, column_key COLLATE utf8mb3_bin AS column_key FROM information_schema.columns WHERE table_schema = database() UNION ALL - SELECT table_name, column_name, ordinal_position, character_set_name, collation_name, data_type, column_key + SELECT table_name COLLATE utf8mb3_bin AS table_name, column_name COLLATE utf8mb3_general_ci AS column_name, ordinal_position, character_set_name COLLATE utf8mb3_general_ci AS character_set_name, collation_name COLLATE utf8mb3_general_ci AS collation_name, data_type COLLATE utf8mb3_bin AS data_type, column_key COLLATE utf8mb3_bin AS column_key FROM _vt.schemacopy WHERE table_schema = database() ) _inner @@ -110,8 +110,8 @@ order by table_name, ordinal_position` table_name, create_statement) values (database(), :table_name, :create_statement)` - UpdateViewsTable = `update _vt.views - set create_statement = :create_statement + UpdateViewsTable = `update _vt.views + set create_statement = :create_statement where table_schema = database() and table_name = :table_name` DeleteFromViewsTable = `delete from _vt.views where table_schema = database() and table_name in ::table_name` diff --git a/go/vt/sidecardb/schema/schematracker/schemacopy.sql b/go/vt/sidecardb/schema/schematracker/schemacopy.sql index 95cd7c34f3f..4ac032bb88c 100644 --- a/go/vt/sidecardb/schema/schematracker/schemacopy.sql +++ b/go/vt/sidecardb/schema/schematracker/schemacopy.sql @@ -16,13 +16,13 @@ limitations under the License. CREATE TABLE IF NOT EXISTS _vt.schemacopy ( - `table_schema` varchar(64) NOT NULL, - `table_name` varchar(64) NOT NULL, - `column_name` varchar(64) NOT NULL, - `ordinal_position` bigint unsigned NOT NULL, - `character_set_name` varchar(32) DEFAULT NULL, - `collation_name` varchar(32) DEFAULT NULL, - `data_type` varchar(64) NOT NULL, - `column_key` varchar(3) NOT NULL, + `table_schema` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `table_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `column_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `ordinal_position` bigint unsigned NOT NULL, + `character_set_name` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + `collation_name` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + `data_type` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `column_key` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, PRIMARY KEY (`table_schema`, `table_name`, `ordinal_position`) -) ENGINE = InnoDB +) ENGINE = InnoDB, CHARACTER SET = utf8mb3