diff --git a/pkg/lightning/restore/tidb.go b/pkg/lightning/restore/tidb.go index a672e7742..18b7713a4 100644 --- a/pkg/lightning/restore/tidb.go +++ b/pkg/lightning/restore/tidb.go @@ -196,7 +196,7 @@ func createTableIfNotExistsStmt(p *parser.Parser, createTable, dbName, tblName s } var res strings.Builder - ctx := format.NewRestoreCtx(format.DefaultRestoreFlags, &res) + ctx := format.NewRestoreCtx(format.DefaultRestoreFlags|format.RestoreStringWithoutDefaultCharset, &res) retStmts := make([]string, 0, len(stmts)) for _, stmt := range stmts { diff --git a/pkg/lightning/restore/tidb_test.go b/pkg/lightning/restore/tidb_test.go index 738220353..fab65d679 100644 --- a/pkg/lightning/restore/tidb_test.go +++ b/pkg/lightning/restore/tidb_test.go @@ -101,7 +101,7 @@ func (s *tidbSuite) TestCreateTableIfNotExistsStmt(c *C) { c.Assert( createTableIfNotExistsStmt("CREATE TABLE `foo`(`bar` INT(1) COMMENT 'CREATE TABLE');", "foo"), DeepEquals, - []string{"CREATE TABLE IF NOT EXISTS `testdb`.`foo` (`bar` INT(1) COMMENT _UTF8MB4'CREATE TABLE');"}, + []string{"CREATE TABLE IF NOT EXISTS `testdb`.`foo` (`bar` INT(1) COMMENT 'CREATE TABLE');"}, ) // upper case becomes shorter @@ -141,7 +141,7 @@ func (s *tidbSuite) TestCreateTableIfNotExistsStmt(c *C) { `, "m"), DeepEquals, []string{ - "SET NAMES _UTF8MB4'binary';", + "SET NAMES 'binary';", "SET @@SESSION.`FOREIGN_KEY_CHECKS`=0;", "CREATE TABLE IF NOT EXISTS `testdb`.`m` (`z` DOUBLE) ENGINE = InnoDB AUTO_INCREMENT = 8343230 DEFAULT CHARACTER SET = UTF8;", }, @@ -166,7 +166,7 @@ func (s *tidbSuite) TestCreateTableIfNotExistsStmt(c *C) { `, "m"), DeepEquals, []string{ - "SET NAMES _UTF8MB4'binary';", + "SET NAMES 'binary';", "DROP TABLE IF EXISTS `testdb`.`m`;", "DROP VIEW IF EXISTS `testdb`.`m`;", "SET @`PREV_CHARACTER_SET_CLIENT`=@@`character_set_client`;", diff --git a/tests/br_full_ddl/run.sh b/tests/br_full_ddl/run.sh index 8a351ef31..0fc7e7900 100755 --- a/tests/br_full_ddl/run.sh +++ b/tests/br_full_ddl/run.sh @@ -18,6 +18,8 @@ DB="$TEST_NAME" TABLE="usertable" DDL_COUNT=10 LOG=/$TEST_DIR/backup.log +BACKUP_STAT=/$TEST_DIR/backup_stat +RESOTRE_STAT=/$TEST_DIR/restore_stat run_sql "CREATE DATABASE $DB;" go-ycsb load mysql -P tests/$TEST_NAME/workload -p mysql.host=$TIDB_IP -p mysql.port=$TIDB_PORT -p mysql.user=root -p mysql.db=$DB @@ -94,10 +96,10 @@ fi echo "restore full without stats..." run_br restore full -s "local://$TEST_DIR/${DB}_disable_stats" --pd $PD_ADDR -curl $TIDB_IP:10080/stats/dump/$DB/$TABLE | jq '.columns.field0' | jq 'del(.last_update_version)' > restore_stats +curl $TIDB_IP:10080/stats/dump/$DB/$TABLE | jq '.columns.field0' | jq 'del(.last_update_version)' > $RESOTRE_STAT # stats should not be equal because we disable stats by default. -if diff -q backup_stats restore_stats > /dev/null +if diff -q $BACKUP_STAT $RESOTRE_STAT > /dev/null then echo "TEST: [$TEST_NAME] fail due to stats are equal" exit 1 @@ -134,13 +136,13 @@ fi run_curl https://$TIDB_STATUS_ADDR/stats/dump/$DB/$TABLE | jq '.columns.field0 | del(.last_update_version)' > $RESOTRE_STAT -if diff -q backup_stats restore_stats > /dev/null +if diff -q $BACKUP_STAT $RESOTRE_STAT > /dev/null then echo "stats are equal" else echo "TEST: [$TEST_NAME] fail due to stats are not equal" - cat $backup_stats | head 1000 - cat $restore_stats | head 1000 + cat $BACKUP_STAT | head -n 1000 + cat $RESOTRE_STAT | head -n 1000 exit 1 fi