mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-31 11:52:10 +00:00
Support use nvarchar for all varchar columns when using mssql (#12269)
* Support use nvarchar for all varchar columns when using mssql * fix lint * Change DEFAULT_VARCHAR to nvarchar * Remove the config for default varchar since it's unnecessary
This commit is contained in:
parent
ed8e064f5e
commit
45631083a4
11 changed files with 68 additions and 8 deletions
34
vendor/xorm.io/xorm/dialects/mssql.go
generated
vendored
34
vendor/xorm.io/xorm/dialects/mssql.go
generated
vendored
|
@ -214,6 +214,8 @@ var (
|
|||
|
||||
type mssql struct {
|
||||
Base
|
||||
defaultVarchar string
|
||||
defaultChar string
|
||||
}
|
||||
|
||||
func (db *mssql) Init(uri *URI) error {
|
||||
|
@ -221,6 +223,34 @@ func (db *mssql) Init(uri *URI) error {
|
|||
return db.Base.Init(db, uri)
|
||||
}
|
||||
|
||||
func (db *mssql) SetParams(params map[string]string) {
|
||||
defaultVarchar, ok := params["DEFAULT_VARCHAR"]
|
||||
if ok {
|
||||
var t = strings.ToUpper(defaultVarchar)
|
||||
switch t {
|
||||
case "NVARCHAR", "VARCHAR":
|
||||
db.defaultVarchar = defaultVarchar
|
||||
default:
|
||||
db.defaultVarchar = "VARCHAR"
|
||||
}
|
||||
} else {
|
||||
db.defaultVarchar = "VARCHAR"
|
||||
}
|
||||
|
||||
defaultChar, ok := params["DEFAULT_CHAR"]
|
||||
if ok {
|
||||
var t = strings.ToUpper(defaultChar)
|
||||
switch t {
|
||||
case "NCHAR", "CHAR":
|
||||
db.defaultChar = defaultChar
|
||||
default:
|
||||
db.defaultChar = "CHAR"
|
||||
}
|
||||
} else {
|
||||
db.defaultChar = "CHAR"
|
||||
}
|
||||
}
|
||||
|
||||
func (db *mssql) SQLType(c *schemas.Column) string {
|
||||
var res string
|
||||
switch t := c.SQLType.Name; t {
|
||||
|
@ -267,6 +297,10 @@ func (db *mssql) SQLType(c *schemas.Column) string {
|
|||
case schemas.BigInt:
|
||||
res = schemas.BigInt
|
||||
c.Length = 0
|
||||
case schemas.Varchar:
|
||||
res = db.defaultVarchar
|
||||
case schemas.Char:
|
||||
res = db.defaultChar
|
||||
default:
|
||||
res = t
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue