Use tableName.field or tableName.* in returning string

This commit is contained in:
Paolo Galeone 2014-12-08 12:03:42 +01:00
parent 0fa1335555
commit 21f4de584f
7 changed files with 14 additions and 14 deletions

View File

@ -34,17 +34,17 @@ func Create(scope *Scope) {
}
}
returningField := ""
returningKey := "*"
if scope.PrimaryKey() == "" {
returningField = "*"
returningKey = "*"
} else {
returningField = scope.PrimaryKey()
returningKey = scope.PrimaryKey()
}
if len(columns) == 0 {
scope.Raw(fmt.Sprintf("INSERT INTO %v DEFAULT VALUES %v",
scope.QuotedTableName(),
scope.Dialect().ReturningStr(returningField),
scope.Dialect().ReturningStr(scope.TableName(), returningKey),
))
} else {
scope.Raw(fmt.Sprintf(
@ -52,7 +52,7 @@ func Create(scope *Scope) {
scope.QuotedTableName(),
strings.Join(columns, ","),
strings.Join(sqls, ","),
scope.Dialect().ReturningStr(returningField),
scope.Dialect().ReturningStr(scope.TableName(), returningKey),
))
}

View File

@ -64,7 +64,7 @@ func (s *commonDialect) PrimaryKeyTag(value reflect.Value, size int) string {
}
}
func (s *commonDialect) ReturningStr(key string) string {
func (s *commonDialect) ReturningStr(tableName, key string) string {
return ""
}

View File

@ -14,7 +14,7 @@ type Dialect interface {
HasTop() bool
SqlTag(value reflect.Value, size int) string
PrimaryKeyTag(value reflect.Value, size int) string
ReturningStr(key string) string
ReturningStr(tableName, key string) string
SelectFromDummyTable() string
Quote(key string) string
HasTable(scope *Scope, tableName string) bool

View File

@ -64,7 +64,7 @@ func (s *mssql) PrimaryKeyTag(value reflect.Value, size int) string {
}
}
func (s *mssql) ReturningStr(key string) string {
func (s *mssql) ReturningStr(tableName, key string) string {
return ""
}

View File

@ -2,8 +2,8 @@ package gorm
import (
"fmt"
"strings"
"reflect"
"strings"
)
type mysql struct{}
@ -64,7 +64,7 @@ func (s *mysql) PrimaryKeyTag(value reflect.Value, size int) string {
}
}
func (s *mysql) ReturningStr(key string) string {
func (s *mysql) ReturningStr(tableName, key string) string {
return ""
}

View File

@ -4,8 +4,8 @@ import (
"database/sql"
"database/sql/driver"
"fmt"
"reflect"
"github.com/lib/pq/hstore"
"reflect"
)
type postgres struct {
@ -65,8 +65,8 @@ func (s *postgres) PrimaryKeyTag(value reflect.Value, size int) string {
}
}
func (s *postgres) ReturningStr(key string) string {
return fmt.Sprintf("RETURNING \"%v\"", key)
func (s *postgres) ReturningStr(tableName, key string) string {
return fmt.Sprintf("RETURNING %v.%v", tableName, key)
}
func (s *postgres) SelectFromDummyTable() string {

View File

@ -56,7 +56,7 @@ func (s *sqlite3) PrimaryKeyTag(value reflect.Value, size int) string {
}
}
func (s *sqlite3) ReturningStr(key string) string {
func (s *sqlite3) ReturningStr(tableName, key string) string {
return ""
}