From bc380039fb69d833edd05b108c5f7df42c196a32 Mon Sep 17 00:00:00 2001 From: Filipp Ozinov Date: Sat, 22 Feb 2025 21:11:19 +0400 Subject: [PATCH] Fix handling add unique index --- mysql_ch_replicator/converter.py | 4 ++-- test_mysql_ch_replicator.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mysql_ch_replicator/converter.py b/mysql_ch_replicator/converter.py index d8dbb1e..fe244ba 100644 --- a/mysql_ch_replicator/converter.py +++ b/mysql_ch_replicator/converter.py @@ -448,13 +448,13 @@ def convert_alter_query(self, mysql_query, db_name): tokens = tokens[1:] if op_name == 'add': - if tokens[0].lower() in ('constraint', 'index', 'foreign'): + if tokens[0].lower() in ('constraint', 'index', 'foreign', 'unique'): continue self.__convert_alter_table_add_column(db_name, table_name, tokens) continue if op_name == 'drop': - if tokens[0].lower() in ('constraint', 'index', 'foreign'): + if tokens[0].lower() in ('constraint', 'index', 'foreign', 'unique'): continue self.__convert_alter_table_drop_column(db_name, table_name, tokens) continue diff --git a/test_mysql_ch_replicator.py b/test_mysql_ch_replicator.py index f3d96cc..f04dfc0 100644 --- a/test_mysql_ch_replicator.py +++ b/test_mysql_ch_replicator.py @@ -137,6 +137,9 @@ def test_e2e_regular(config_file): mysql.execute(f"ALTER TABLE `{TEST_TABLE_NAME}` ADD `last_name` varchar(255); ") mysql.execute(f"ALTER TABLE `{TEST_TABLE_NAME}` ADD `price` decimal(10,2) DEFAULT NULL; ") + mysql.execute(f"ALTER TABLE `{TEST_TABLE_NAME}` ADD UNIQUE INDEX prise_idx (price)") + mysql.execute(f"ALTER TABLE `{TEST_TABLE_NAME}` DROP INDEX prise_idx, ADD UNIQUE INDEX age_idx (age)") + mysql.execute(f"INSERT INTO `{TEST_TABLE_NAME}` (name, age, last_name, price) VALUES ('Mary', 24, 'Smith', 3.2);", commit=True) assert_wait(lambda: len(ch.select(TEST_TABLE_NAME)) == 4)