diff --git a/mysql_ch_replicator/converter.py b/mysql_ch_replicator/converter.py index 48d710e..967e9be 100644 --- a/mysql_ch_replicator/converter.py +++ b/mysql_ch_replicator/converter.py @@ -582,13 +582,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', 'unique'): + if tokens[0].lower() in ('constraint', 'index', 'foreign', 'unique', 'key'): 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', 'unique'): + if tokens[0].lower() in ('constraint', 'index', 'foreign', 'unique', 'key'): 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 deac3f1..30759eb 100644 --- a/test_mysql_ch_replicator.py +++ b/test_mysql_ch_replicator.py @@ -1420,6 +1420,17 @@ def test_add_column_first_after_and_drop_column(monkeypatch): assert_wait(lambda: ch.select(TEST_TABLE_NAME, where="id=44")[0]['c1'] == 111) assert_wait(lambda: ch.select(TEST_TABLE_NAME, where="id=44")[0]['c2'] == 222) + # Test add KEY + mysql.execute( + f"ALTER TABLE `{TEST_TABLE_NAME}` ADD KEY `idx_c1_c2` (`c1`,`c2`)") + mysql.execute( + f"INSERT INTO `{TEST_TABLE_NAME}` (id, c1, c2) VALUES (46, 333, 444)", + commit=True, + ) + assert_wait(lambda: len(ch.select(TEST_TABLE_NAME, where="id=46")) == 1) + assert_wait(lambda: ch.select(TEST_TABLE_NAME, where="id=46")[0]['c1'] == 333) + assert_wait(lambda: ch.select(TEST_TABLE_NAME, where="id=46")[0]['c2'] == 444) + # Test drop column mysql.execute( f"ALTER TABLE `{TEST_TABLE_NAME}` DROP COLUMN c2")