diff --git a/dialects/mssql.go b/dialects/mssql.go index 5340455d..4504eb55 100644 --- a/dialects/mssql.go +++ b/dialects/mssql.go @@ -538,7 +538,7 @@ WHERE IXS.TYPE_DESC='NONCLUSTERED' and OBJECT_NAME(IXS.OBJECT_ID) =? colName = strings.Trim(colName, "` ") 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):] isRegular = true } diff --git a/schemas/type.go b/schemas/type.go index 89459a4d..f0ede296 100644 --- a/schemas/type.go +++ b/schemas/type.go @@ -68,6 +68,10 @@ func (s *SQLType) IsJson() bool { return s.Name == Json || s.Name == Jsonb } +func (s *SQLType) IsXML() bool { + return s.Name == XML +} + var ( Bit = "BIT" TinyInt = "TINYINT" @@ -128,6 +132,7 @@ var ( Json = "JSON" Jsonb = "JSONB" + XML = "XML" Array = "ARRAY" SqlTypes = map[string]int{ @@ -144,6 +149,8 @@ var ( Json: TEXT_TYPE, Jsonb: TEXT_TYPE, + XML: TEXT_TYPE, + Char: TEXT_TYPE, NChar: TEXT_TYPE, Varchar: TEXT_TYPE,