From a5cb21c44305815170d0d72563e47d585e8dcabf Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 5 Apr 2017 18:17:41 +0800 Subject: [PATCH] bug fixed for mssql dialect --- dialect_mssql.go | 8 +++++--- dialect_oracle.go | 7 +++++++ dialect_postgres.go | 4 +++- dialect_sqlite3.go | 3 +++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/dialect_mssql.go b/dialect_mssql.go index 70fcaf6e..f83cfc17 100644 --- a/dialect_mssql.go +++ b/dialect_mssql.go @@ -216,9 +216,9 @@ func (db *mssql) SqlType(c *core.Column) string { switch t := c.SQLType.Name; t { case core.Bool: res = core.TinyInt - if c.Default == "true" { + if strings.EqualFold(c.Default, "true") { c.Default = "1" - } else if c.Default == "false" { + } else { c.Default = "0" } case core.Serial: @@ -468,9 +468,10 @@ 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) { indexName = indexName[5+len(tableName):] + isRegular = true } var index *core.Index @@ -479,6 +480,7 @@ WHERE IXS.TYPE_DESC='NONCLUSTERED' and OBJECT_NAME(IXS.OBJECT_ID) =? index = new(core.Index) index.Type = indexType index.Name = indexName + index.IsRegular = isRegular indexes[indexName] = index } index.AddColumn(colName) diff --git a/dialect_oracle.go b/dialect_oracle.go index 8c43aa4c..ac0081b3 100644 --- a/dialect_oracle.go +++ b/dialect_oracle.go @@ -824,6 +824,12 @@ func (db *oracle) GetIndexes(tableName string) (map[string]*core.Index, error) { indexName = strings.Trim(indexName, `" `) + var isRegular bool + if strings.HasPrefix(indexName, "IDX_"+tableName) || strings.HasPrefix(indexName, "UQE_"+tableName) { + indexName = indexName[5+len(tableName):] + isRegular = true + } + if uniqueness == "UNIQUE" { indexType = core.UniqueType } else { @@ -836,6 +842,7 @@ func (db *oracle) GetIndexes(tableName string) (map[string]*core.Index, error) { index = new(core.Index) index.Type = indexType index.Name = indexName + index.IsRegular = isRegular indexes[indexName] = index } index.AddColumn(colName) diff --git a/dialect_postgres.go b/dialect_postgres.go index 05fc1235..1d4daa27 100644 --- a/dialect_postgres.go +++ b/dialect_postgres.go @@ -1078,9 +1078,10 @@ func (db *postgres) GetIndexes(tableName string) (map[string]*core.Index, error) } cs := strings.Split(indexdef, "(") colNames = strings.Split(cs[1][0:len(cs[1])-1], ",") - + var isRegular bool if strings.HasPrefix(indexName, "IDX_"+tableName) || strings.HasPrefix(indexName, "UQE_"+tableName) { newIdxName := indexName[5+len(tableName):] + isRegular = true if newIdxName != "" { indexName = newIdxName } @@ -1090,6 +1091,7 @@ func (db *postgres) GetIndexes(tableName string) (map[string]*core.Index, error) for _, colName := range colNames { index.Cols = append(index.Cols, strings.Trim(colName, `" `)) } + index.IsRegular = isRegular indexes[index.Name] = index } return indexes, nil diff --git a/dialect_sqlite3.go b/dialect_sqlite3.go index c190c4d9..c13fd02b 100644 --- a/dialect_sqlite3.go +++ b/dialect_sqlite3.go @@ -405,8 +405,10 @@ func (db *sqlite3) GetIndexes(tableName string) (map[string]*core.Index, error) } indexName := strings.Trim(sql[nNStart+6:nNEnd], "` []") + var isRegular bool if strings.HasPrefix(indexName, "IDX_"+tableName) || strings.HasPrefix(indexName, "UQE_"+tableName) { index.Name = indexName[5+len(tableName):] + isRegular = true } else { index.Name = indexName } @@ -425,6 +427,7 @@ func (db *sqlite3) GetIndexes(tableName string) (map[string]*core.Index, error) for _, col := range colIndexes { index.Cols = append(index.Cols, strings.Trim(col, "` []")) } + index.IsRegular = isRegular indexes[index.Name] = index }