From 8cf485a43cdcfcf7ebf6ff6defdfbac15350d61c Mon Sep 17 00:00:00 2001 From: WangXiangUSTC Date: Fri, 22 Feb 2019 17:24:47 +0800 Subject: [PATCH] reparo: add `` for column (#468) --- reparo/translator/mysql.go | 12 +++++++++++- tests/reparo/run.sh | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/reparo/translator/mysql.go b/reparo/translator/mysql.go index d22a7f9c4..96d49872e 100644 --- a/reparo/translator/mysql.go +++ b/reparo/translator/mysql.go @@ -132,7 +132,17 @@ func (p *mysqlTranslator) TransDDL(binlog *pb.Binlog) (string, []interface{}, er } func (p *mysqlTranslator) genColumnList(columns []string) string { - return strings.Join(columns, ",") + var columnList strings.Builder + for i, column := range columns { + name := fmt.Sprintf("`%s`", column) + columnList.WriteString(name) + + if i != len(columns)-1 { + columnList.WriteString(",") + } + } + + return columnList.String() } func genWhere(columns []string, args []interface{}) (string, []interface{}) { diff --git a/tests/reparo/run.sh b/tests/reparo/run.sh index fc4cb3b3c..dbb4c3541 100755 --- a/tests/reparo/run.sh +++ b/tests/reparo/run.sh @@ -6,15 +6,15 @@ cd "$(dirname "$0")" run_drainer & -run_sql "DROP DATABASE IF EXISTS reparo_test;" -run_sql "CREATE DATABASE reparo_test" -run_sql "CREATE TABLE reparo_test.test(id int, name varchar(10), PRIMARY KEY(id))" +run_sql "DROP DATABASE IF EXISTS \`reparo_test\`;" +run_sql "CREATE DATABASE \`reparo_test\`" +run_sql "CREATE TABLE \`reparo_test\`.\`test\`(\`id\` int, \`name\` varchar(10), \`all\` varchar(10), PRIMARY KEY(\`id\`))" -run_sql "INSERT INTO reparo_test.test VALUES(1, 'a'), (2, 'b')" -run_sql "INSERT INTO reparo_test.test VALUES(3, 'c'), (4, 'd')" -run_sql "UPDATE reparo_test.test SET name = 'bb' where id = 2" -run_sql "DELETE FROM reparo_test.test WHERE name = 'bb'" -run_sql "INSERT INTO reparo_test.test VALUES(5, 'e')" +run_sql "INSERT INTO \`reparo_test\`.\`test\` VALUES(1, 'a', 'a'), (2, 'b', 'b')" +run_sql "INSERT INTO \`reparo_test\`.\`test\` VALUES(3, 'c', 'c'), (4, 'd', 'c')" +run_sql "UPDATE \`reparo_test\`.\`test\` SET \`name\` = 'bb' where \`id\` = 2" +run_sql "DELETE FROM \`reparo_test\`.\`test\` WHERE \`name\` = 'bb'" +run_sql "INSERT INTO \`reparo_test\`.\`test\` VALUES(5, 'e', 'e')" sleep 5 @@ -22,10 +22,10 @@ run_reparo & sleep 5 -down_run_sql "SELECT count(*) FROM reparo_test.test" +down_run_sql "SELECT count(*) FROM \`reparo_test\`.\`test\`" check_contains "count(*): 4" # clean up -run_sql "DROP DATABASE IF EXISTS reparo_test" +run_sql "DROP DATABASE IF EXISTS \`reparo_test\`" killall drainer