aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/go-xorm/core
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-xorm/core')
-rw-r--r--vendor/github.com/go-xorm/core/column.go16
-rw-r--r--vendor/github.com/go-xorm/core/dialect.go11
2 files changed, 14 insertions, 13 deletions
diff --git a/vendor/github.com/go-xorm/core/column.go b/vendor/github.com/go-xorm/core/column.go
index 36016ef6..c59d0102 100644
--- a/vendor/github.com/go-xorm/core/column.go
+++ b/vendor/github.com/go-xorm/core/column.go
@@ -32,7 +32,6 @@ type Column struct {
IsDeleted bool
IsCascade bool
IsVersion bool
- fieldPath []string
DefaultIsEmpty bool
EnumOptions map[string]int
SetOptions map[string]int
@@ -59,7 +58,6 @@ func NewColumn(name, fieldName string, sqlType SQLType, len1, len2 int, nullable
IsDeleted: false,
IsCascade: false,
IsVersion: false,
- fieldPath: nil,
DefaultIsEmpty: false,
EnumOptions: make(map[string]int),
}
@@ -121,12 +119,10 @@ func (col *Column) ValueOf(bean interface{}) (*reflect.Value, error) {
func (col *Column) ValueOfV(dataStruct *reflect.Value) (*reflect.Value, error) {
var fieldValue reflect.Value
- if col.fieldPath == nil {
- col.fieldPath = strings.Split(col.FieldName, ".")
- }
+ fieldPath := strings.Split(col.FieldName, ".")
if dataStruct.Type().Kind() == reflect.Map {
- keyValue := reflect.ValueOf(col.fieldPath[len(col.fieldPath)-1])
+ keyValue := reflect.ValueOf(fieldPath[len(fieldPath)-1])
fieldValue = dataStruct.MapIndex(keyValue)
return &fieldValue, nil
} else if dataStruct.Type().Kind() == reflect.Interface {
@@ -134,19 +130,19 @@ func (col *Column) ValueOfV(dataStruct *reflect.Value) (*reflect.Value, error) {
dataStruct = &structValue
}
- level := len(col.fieldPath)
- fieldValue = dataStruct.FieldByName(col.fieldPath[0])
+ level := len(fieldPath)
+ fieldValue = dataStruct.FieldByName(fieldPath[0])
for i := 0; i < level-1; i++ {
if !fieldValue.IsValid() {
break
}
if fieldValue.Kind() == reflect.Struct {
- fieldValue = fieldValue.FieldByName(col.fieldPath[i+1])
+ fieldValue = fieldValue.FieldByName(fieldPath[i+1])
} else if fieldValue.Kind() == reflect.Ptr {
if fieldValue.IsNil() {
fieldValue.Set(reflect.New(fieldValue.Type().Elem()))
}
- fieldValue = fieldValue.Elem().FieldByName(col.fieldPath[i+1])
+ fieldValue = fieldValue.Elem().FieldByName(fieldPath[i+1])
} else {
return nil, fmt.Errorf("field %v is not valid", col.FieldName)
}
diff --git a/vendor/github.com/go-xorm/core/dialect.go b/vendor/github.com/go-xorm/core/dialect.go
index 7bedc27d..70420ee5 100644
--- a/vendor/github.com/go-xorm/core/dialect.go
+++ b/vendor/github.com/go-xorm/core/dialect.go
@@ -287,16 +287,21 @@ func (b *Base) LogSQL(sql string, args []interface{}) {
}
var (
- dialects = map[DbType]func() Dialect{}
+ dialects = map[string]func() Dialect{}
)
+// RegisterDialect register database dialect
func RegisterDialect(dbName DbType, dialectFunc func() Dialect) {
if dialectFunc == nil {
panic("core: Register dialect is nil")
}
- dialects[dbName] = dialectFunc // !nashtsai! allow override dialect
+ dialects[strings.ToLower(string(dbName))] = dialectFunc // !nashtsai! allow override dialect
}
+// QueryDialect query if registed database dialect
func QueryDialect(dbName DbType) Dialect {
- return dialects[dbName]()
+ if d, ok := dialects[strings.ToLower(string(dbName))]; ok {
+ return d()
+ }
+ return nil
}