@@ -26,40 +26,38 @@ var (
2626 dbType string
2727 connString string
2828
29- db = flag .String ("db" , "sqlite3" , "the tested database" )
30- showSQL = flag .Bool ("show_sql" , true , "show generated SQLs" )
31- ptrConnStr = flag .String ("conn_str" , "./test.db?cache=shared&mode=rwc" , "test database connection string" )
32- mapType = flag .String ("map_type" , "snake" , "indicate the name mapping" )
33- cache = flag .Bool ("cache" , false , "if enable cache" )
34- cluster = flag .Bool ("cluster" , false , "if this is a cluster" )
35- splitter = flag .String ("splitter" , ";" , "the splitter on connstr for cluster" )
36- schema = flag .String ("schema" , "" , "specify the schema" )
29+ db = flag .String ("db" , "sqlite3" , "the tested database" )
30+ showSQL = flag .Bool ("show_sql" , true , "show generated SQLs" )
31+ ptrConnStr = flag .String ("conn_str" , "./test.db?cache=shared&mode=rwc" , "test database connection string" )
32+ mapType = flag .String ("map_type" , "snake" , "indicate the name mapping" )
33+ cache = flag .Bool ("cache" , false , "if enable cache" )
34+ cluster = flag .Bool ("cluster" , false , "if this is a cluster" )
35+ splitter = flag .String ("splitter" , ";" , "the splitter on connstr for cluster" )
36+ schema = flag .String ("schema" , "" , "specify the schema" )
37+ ignoreSelectUpdate = flag .Bool ("ignore_select_update" , false , "ignore select update if implementation difference, only for tidb" )
3738)
3839
3940func createEngine (dbType , connStr string ) error {
4041 if testEngine == nil {
4142 var err error
4243
4344 if ! * cluster {
44- // create databases if not exist
45- var db * sql.DB
46- var err error
47- if strings .ToLower (dbType ) != core .MSSQL {
48- db , err = sql .Open (dbType , connStr )
49- } else {
50- db , err = sql .Open (dbType , strings .Replace (connStr , "xorm_test" , "master" , - 1 ))
51- }
52-
53- if err != nil {
54- return err
55- }
56-
5745 switch strings .ToLower (dbType ) {
5846 case core .MSSQL :
47+ db , err := sql .Open (dbType , strings .Replace (connStr , "xorm_test" , "master" , - 1 ))
48+ if err != nil {
49+ return err
50+ }
5951 if _ , err = db .Exec ("If(db_id(N'xorm_test') IS NULL) BEGIN CREATE DATABASE xorm_test; END;" ); err != nil {
6052 return fmt .Errorf ("db.Exec: %v" , err )
6153 }
54+ db .Close ()
55+ * ignoreSelectUpdate = true
6256 case core .POSTGRES :
57+ db , err := sql .Open (dbType , connStr )
58+ if err != nil {
59+ return err
60+ }
6361 rows , err := db .Query (fmt .Sprintf ("SELECT 1 FROM pg_database WHERE datname = 'xorm_test'" ))
6462 if err != nil {
6563 return fmt .Errorf ("db.Query: %v" , err )
@@ -76,16 +74,27 @@ func createEngine(dbType, connStr string) error {
7674 return fmt .Errorf ("CREATE SCHEMA: %v" , err )
7775 }
7876 }
77+ db .Close ()
78+ * ignoreSelectUpdate = true
7979 case core .MYSQL :
80+ db , err := sql .Open (dbType , strings .Replace (connStr , "xorm_test" , "mysql" , - 1 ))
81+ if err != nil {
82+ return err
83+ }
8084 if _ , err = db .Exec ("CREATE DATABASE IF NOT EXISTS xorm_test" ); err != nil {
8185 return fmt .Errorf ("db.Exec: %v" , err )
8286 }
87+ db .Close ()
88+ default :
89+ * ignoreSelectUpdate = true
8390 }
84- db .Close ()
8591
8692 testEngine , err = NewEngine (dbType , connStr )
8793 } else {
8894 testEngine , err = NewEngineGroup (dbType , strings .Split (connStr , * splitter ))
95+ if dbType != "mysql" && dbType != "mymysql" {
96+ * ignoreSelectUpdate = true
97+ }
8998 }
9099 if err != nil {
91100 return err
0 commit comments