Merge branch 'main' into lunny/upgrade_mssql
This commit is contained in:
commit
598ce2fdde
|
@ -45,6 +45,14 @@ jobs:
|
||||||
TEST_MSSQL_USERNAME: sa
|
TEST_MSSQL_USERNAME: sa
|
||||||
TEST_MSSQL_PASSWORD: "yourStrong(!)Password"
|
TEST_MSSQL_PASSWORD: "yourStrong(!)Password"
|
||||||
run: TEST_MSSQL_DEFAULT_VARCHAR=NVARCHAR TEST_MSSQL_DEFAULT_CHAR=NCHAR make test-mssql
|
run: TEST_MSSQL_DEFAULT_VARCHAR=NVARCHAR TEST_MSSQL_DEFAULT_CHAR=NCHAR make test-mssql
|
||||||
|
- name: test mssql with collation
|
||||||
|
env:
|
||||||
|
TEST_MSSQL_HOST: mssql
|
||||||
|
TEST_MSSQL_DBNAME: xorm_test
|
||||||
|
TEST_MSSQL_USERNAME: sa
|
||||||
|
TEST_MSSQL_PASSWORD: "yourStrong(!)Password"
|
||||||
|
TEST_MSSQL_COLLATION: SQL_Latin1_General_CP1_CS_AS
|
||||||
|
run: TEST_MSSQL_DEFAULT_VARCHAR=NVARCHAR TEST_MSSQL_DEFAULT_CHAR=NCHAR make test-mssql
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mssql:
|
mssql:
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -25,6 +25,7 @@ TEST_MSSQL_PASSWORD ?= MwantsaSecurePassword1
|
||||||
TEST_MSSQL_DEFAULT_VARCHAR ?= varchar
|
TEST_MSSQL_DEFAULT_VARCHAR ?= varchar
|
||||||
TEST_MSSQL_DEFAULT_CHAR ?= char
|
TEST_MSSQL_DEFAULT_CHAR ?= char
|
||||||
TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST ?= true
|
TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST ?= true
|
||||||
|
TEST_MSSQL_COLLATION ?=
|
||||||
|
|
||||||
TEST_MYSQL_HOST ?= mysql:3306
|
TEST_MYSQL_HOST ?= mysql:3306
|
||||||
TEST_MYSQL_CHARSET ?= utf8
|
TEST_MYSQL_CHARSET ?= utf8
|
||||||
|
@ -152,6 +153,7 @@ test-mssql: go-check
|
||||||
-conn_str="server=$(TEST_MSSQL_HOST);user id=$(TEST_MSSQL_USERNAME);password=$(TEST_MSSQL_PASSWORD);database=$(TEST_MSSQL_DBNAME)" \
|
-conn_str="server=$(TEST_MSSQL_HOST);user id=$(TEST_MSSQL_USERNAME);password=$(TEST_MSSQL_PASSWORD);database=$(TEST_MSSQL_DBNAME)" \
|
||||||
-default_varchar=$(TEST_MSSQL_DEFAULT_VARCHAR) -default_char=$(TEST_MSSQL_DEFAULT_CHAR) \
|
-default_varchar=$(TEST_MSSQL_DEFAULT_VARCHAR) -default_char=$(TEST_MSSQL_DEFAULT_CHAR) \
|
||||||
-do_nvarchar_override_test=$(TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST) \
|
-do_nvarchar_override_test=$(TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST) \
|
||||||
|
-collation=$(TEST_MSSQL_COLLATION) \
|
||||||
-coverprofile=mssql.$(TEST_QUOTE_POLICY).coverage.out -covermode=atomic -timeout=20m
|
-coverprofile=mssql.$(TEST_QUOTE_POLICY).coverage.out -covermode=atomic -timeout=20m
|
||||||
|
|
||||||
.PNONY: test-mssql\#%
|
.PNONY: test-mssql\#%
|
||||||
|
|
|
@ -586,7 +586,7 @@ func (db *mssql) GetIndexes(ctx context.Context, queryer core.Queryer, tableName
|
||||||
IXS.NAME AS [INDEX_NAME],
|
IXS.NAME AS [INDEX_NAME],
|
||||||
C.NAME AS [COLUMN_NAME],
|
C.NAME AS [COLUMN_NAME],
|
||||||
IXS.is_unique AS [IS_UNIQUE]
|
IXS.is_unique AS [IS_UNIQUE]
|
||||||
FROM SYS.INDEXES IXS
|
FROM sys.indexes IXS
|
||||||
INNER JOIN SYS.INDEX_COLUMNS IXCS
|
INNER JOIN SYS.INDEX_COLUMNS IXCS
|
||||||
ON IXS.OBJECT_ID=IXCS.OBJECT_ID AND IXS.INDEX_ID = IXCS.INDEX_ID
|
ON IXS.OBJECT_ID=IXCS.OBJECT_ID AND IXS.INDEX_ID = IXCS.INDEX_ID
|
||||||
INNER JOIN SYS.COLUMNS C ON IXS.OBJECT_ID=C.OBJECT_ID
|
INNER JOIN SYS.COLUMNS C ON IXS.OBJECT_ID=C.OBJECT_ID
|
||||||
|
|
|
@ -39,6 +39,7 @@ var (
|
||||||
quotePolicyStr = flag.String("quote", "always", "quote could be always, none, reversed")
|
quotePolicyStr = flag.String("quote", "always", "quote could be always, none, reversed")
|
||||||
defaultVarchar = flag.String("default_varchar", "varchar", "default varchar type, mssql only, could be varchar or nvarchar, default is varchar")
|
defaultVarchar = flag.String("default_varchar", "varchar", "default varchar type, mssql only, could be varchar or nvarchar, default is varchar")
|
||||||
defaultChar = flag.String("default_char", "char", "default char type, mssql only, could be char or nchar, default is char")
|
defaultChar = flag.String("default_char", "char", "default char type, mssql only, could be char or nchar, default is char")
|
||||||
|
collation = flag.String("collation", "", "default database collation, it's different for different database")
|
||||||
tableMapper names.Mapper
|
tableMapper names.Mapper
|
||||||
colMapper names.Mapper
|
colMapper names.Mapper
|
||||||
)
|
)
|
||||||
|
@ -54,7 +55,12 @@ func createEngine(dbType, connStr string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err = db.Exec("If(db_id(N'xorm_test') IS NULL) BEGIN CREATE DATABASE xorm_test; END;"); err != nil {
|
createDBSQL := "If(db_id(N'xorm_test') IS NULL) BEGIN CREATE DATABASE xorm_test"
|
||||||
|
if collation != nil && *collation != "" {
|
||||||
|
createDBSQL += fmt.Sprintf(" COLLATE %s", *collation)
|
||||||
|
}
|
||||||
|
createDBSQL += "; END;"
|
||||||
|
if _, err = db.Exec(createDBSQL); err != nil {
|
||||||
return fmt.Errorf("db.Exec: %v", err)
|
return fmt.Errorf("db.Exec: %v", err)
|
||||||
}
|
}
|
||||||
db.Close()
|
db.Close()
|
||||||
|
|
Loading…
Reference in New Issue