diff options
author | Unknwon <u@gogs.io> | 2017-06-07 01:19:32 -0400 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2017-06-07 01:19:32 -0400 |
commit | b40dc550ed15efd2c6faa1ea619888a400499a84 (patch) | |
tree | a5a064eed5e4e913fdbba23f8ab278844655863d /vendor/github.com/go-xorm/xorm/dialect_sqlite3.go | |
parent | c210984b40a23f20bebe1f905ff6b1297c3ad901 (diff) |
vendor: update github.com/go-xorm/* (#4419)
Diffstat (limited to 'vendor/github.com/go-xorm/xorm/dialect_sqlite3.go')
-rw-r--r-- | vendor/github.com/go-xorm/xorm/dialect_sqlite3.go | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/vendor/github.com/go-xorm/xorm/dialect_sqlite3.go b/vendor/github.com/go-xorm/xorm/dialect_sqlite3.go index c13fd02b..a55b1615 100644 --- a/vendor/github.com/go-xorm/xorm/dialect_sqlite3.go +++ b/vendor/github.com/go-xorm/xorm/dialect_sqlite3.go @@ -14,10 +14,6 @@ import ( "github.com/go-xorm/core" ) -// func init() { -// RegisterDialect("sqlite3", &sqlite3{}) -// } - var ( sqlite3ReservedWords = map[string]bool{ "ABORT": true, @@ -310,11 +306,25 @@ func (db *sqlite3) GetColumns(tableName string) ([]string, map[string]*core.Colu for _, colStr := range colCreates { reg = regexp.MustCompile(`,\s`) colStr = reg.ReplaceAllString(colStr, ",") + if strings.HasPrefix(strings.TrimSpace(colStr), "PRIMARY KEY") { + parts := strings.Split(strings.TrimSpace(colStr), "(") + if len(parts) == 2 { + pkCols := strings.Split(strings.TrimRight(strings.TrimSpace(parts[1]), ")"), ",") + for _, pk := range pkCols { + if col, ok := cols[strings.Trim(strings.TrimSpace(pk), "`")]; ok { + col.IsPrimaryKey = true + } + } + } + continue + } + fields := strings.Fields(strings.TrimSpace(colStr)) col := new(core.Column) col.Indexes = make(map[string]int) col.Nullable = true col.DefaultIsEmpty = true + for idx, field := range fields { if idx == 0 { col.Name = strings.Trim(strings.Trim(field, "`[] "), `"`) |