Skip to content

Commit 024bdf0

Browse files
committed
Comments handling
1 parent c542abb commit 024bdf0

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

mysql_ch_replicator/converter.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import json
22
import sqlparse
3+
import re
34
from pyparsing import Word, alphas, alphanums
45

56
from .table_structure import TableStructure, TableField
@@ -369,7 +370,13 @@ def parse_create_table_query(self, mysql_query) -> tuple:
369370
def convert_drop_table_query(self, mysql_query):
370371
raise Exception('not implement')
371372

373+
def _strip_comments(self, create_statement):
374+
pattern = r'\bCOMMENT(?:\s*=\s*|\s+)([\'"])(?:\\.|[^\\])*?\1'
375+
return re.sub(pattern, '', create_statement, flags=re.IGNORECASE)
376+
372377
def parse_mysql_table_structure(self, create_statement, required_table_name=None):
378+
create_statement = self._strip_comments(create_statement)
379+
373380
structure = TableStructure()
374381

375382
tokens = sqlparse.parse(create_statement.replace('\n', ' ').strip())[0].tokens

test_mysql_ch_replicator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ def test_e2e_regular():
8888
mysql.execute(f'''
8989
CREATE TABLE {TEST_TABLE_NAME} (
9090
id int NOT NULL AUTO_INCREMENT,
91-
name varchar(255),
92-
age int,
91+
name varchar(255) COMMENT 'Dân tộc, ví dụ: Kinh',
92+
age int COMMENT 'CMND Cũ',
9393
field1 text,
9494
field2 blob,
9595
PRIMARY KEY (id)

0 commit comments

Comments
 (0)