aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/go-xorm/xorm/dialect_sqlite3.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2017-06-07 01:19:32 -0400
committerUnknwon <u@gogs.io>2017-06-07 01:19:32 -0400
commitb40dc550ed15efd2c6faa1ea619888a400499a84 (patch)
treea5a064eed5e4e913fdbba23f8ab278844655863d /vendor/github.com/go-xorm/xorm/dialect_sqlite3.go
parentc210984b40a23f20bebe1f905ff6b1297c3ad901 (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.go18
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, "`[] "), `"`)