fix_bugs_for_mssql (#1852)

1. add: support xml column type for mssql.
2. fix: array index overflow when getindexs caused by unregular indexname(eg.idx_(tablename))

Co-authored-by: Rick <lonelyangel.jcw@gmail.com>
Reviewed-on: https://gitea.com/xorm/xorm/pulls/1852
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: L-Angel <l-angel@noreply.gitea.io>
Co-committed-by: L-Angel <l-angel@noreply.gitea.io>
This commit is contained in:
L-Angel 2021-01-19 13:41:14 +08:00 committed by Lunny Xiao
parent 91e0b9aa6e
commit c442c5a9a8
2 changed files with 8 additions and 1 deletions

View File

@ -538,7 +538,7 @@ WHERE IXS.TYPE_DESC='NONCLUSTERED' and OBJECT_NAME(IXS.OBJECT_ID) =?
colName = strings.Trim(colName, "` ") colName = strings.Trim(colName, "` ")
var isRegular bool var isRegular bool
if strings.HasPrefix(indexName, "IDX_"+tableName) || strings.HasPrefix(indexName, "UQE_"+tableName) { if (strings.HasPrefix(indexName, "IDX_"+tableName) || strings.HasPrefix(indexName, "UQE_"+tableName)) && len(indexName) > (5+len(tableName)) {
indexName = indexName[5+len(tableName):] indexName = indexName[5+len(tableName):]
isRegular = true isRegular = true
} }

View File

@ -68,6 +68,10 @@ func (s *SQLType) IsJson() bool {
return s.Name == Json || s.Name == Jsonb return s.Name == Json || s.Name == Jsonb
} }
func (s *SQLType) IsXML() bool {
return s.Name == XML
}
var ( var (
Bit = "BIT" Bit = "BIT"
TinyInt = "TINYINT" TinyInt = "TINYINT"
@ -128,6 +132,7 @@ var (
Json = "JSON" Json = "JSON"
Jsonb = "JSONB" Jsonb = "JSONB"
XML = "XML"
Array = "ARRAY" Array = "ARRAY"
SqlTypes = map[string]int{ SqlTypes = map[string]int{
@ -144,6 +149,8 @@ var (
Json: TEXT_TYPE, Json: TEXT_TYPE,
Jsonb: TEXT_TYPE, Jsonb: TEXT_TYPE,
XML: TEXT_TYPE,
Char: TEXT_TYPE, Char: TEXT_TYPE,
NChar: TEXT_TYPE, NChar: TEXT_TYPE,
Varchar: TEXT_TYPE, Varchar: TEXT_TYPE,