From bbe8fb52929566619156e6bc3b4838372e7582b5 Mon Sep 17 00:00:00 2001 From: "vitess-bot[bot]" <108069721+vitess-bot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 15:38:03 +0200 Subject: [PATCH] [18.x] Fix `schemacopy` collation issues (#15859) --- go/mysql/schema.go | 4 ++-- .../schema/schematracker/schemacopy.sql | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/go/mysql/schema.go b/go/mysql/schema.go index c2f6c12e1f7..b436212cf0a 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 %s.schemacopy WHERE table_schema = database() ) _inner diff --git a/go/vt/sidecardb/schema/schematracker/schemacopy.sql b/go/vt/sidecardb/schema/schematracker/schemacopy.sql index 296bb34df14..3abb922f81f 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 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