bug fixed #565
This commit is contained in:
parent
30dcce510d
commit
e9dc216344
50
convert.go
50
convert.go
|
@ -284,3 +284,53 @@ func asKind(vv reflect.Value, tp reflect.Type) (interface{}, error) {
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("unsupported primary key type: %v, %v", tp, vv)
|
return nil, fmt.Errorf("unsupported primary key type: %v, %v", tp, vv)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func convertFloat(v interface{}) (float64, error) {
|
||||||
|
switch v.(type) {
|
||||||
|
case float32:
|
||||||
|
return float64(v.(float32)), nil
|
||||||
|
case float64:
|
||||||
|
return v.(float64), nil
|
||||||
|
case string:
|
||||||
|
i, err := strconv.ParseFloat(v.(string), 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return i, nil
|
||||||
|
case []byte:
|
||||||
|
i, err := strconv.ParseFloat(string(v.([]byte)), 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return i, nil
|
||||||
|
}
|
||||||
|
return 0, fmt.Errorf("unsupported type: %v", v)
|
||||||
|
}
|
||||||
|
|
||||||
|
func convertInt(v interface{}) (int64, error) {
|
||||||
|
switch v.(type) {
|
||||||
|
case int:
|
||||||
|
return int64(v.(int)), nil
|
||||||
|
case int8:
|
||||||
|
return int64(v.(int8)), nil
|
||||||
|
case int16:
|
||||||
|
return int64(v.(int16)), nil
|
||||||
|
case int32:
|
||||||
|
return int64(v.(int32)), nil
|
||||||
|
case int64:
|
||||||
|
return v.(int64), nil
|
||||||
|
case []byte:
|
||||||
|
i, err := strconv.ParseInt(string(v.([]byte)), 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return i, nil
|
||||||
|
case string:
|
||||||
|
i, err := strconv.ParseInt(v.(string), 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return i, nil
|
||||||
|
}
|
||||||
|
return 0, fmt.Errorf("unsupported type: %v", v)
|
||||||
|
}
|
||||||
|
|
|
@ -936,7 +936,7 @@ func (engine *Engine) mapType(v reflect.Value) (*core.Table, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.tagName = k[:pStart]
|
ctx.tagName = k[:pStart]
|
||||||
ctx.params = strings.Split(k[pStart+1:len(k)-1], ",")
|
ctx.params = strings.Split(key[pStart+1:len(k)-1], ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
if j > 0 {
|
if j > 0 {
|
||||||
|
|
|
@ -6,7 +6,6 @@ package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -100,53 +99,3 @@ func TestGetVar(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1.5", fmt.Sprintf("%v", v4))
|
assert.Equal(t, "1.5", fmt.Sprintf("%v", v4))
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertFloat(v interface{}) (float64, error) {
|
|
||||||
switch v.(type) {
|
|
||||||
case float32:
|
|
||||||
return float64(v.(float32)), nil
|
|
||||||
case float64:
|
|
||||||
return v.(float64), nil
|
|
||||||
case string:
|
|
||||||
i, err := strconv.ParseFloat(v.(string), 64)
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return i, nil
|
|
||||||
case []byte:
|
|
||||||
i, err := strconv.ParseFloat(string(v.([]byte)), 64)
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return i, nil
|
|
||||||
}
|
|
||||||
return 0, fmt.Errorf("unsupported type: %v", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
func convertInt(v interface{}) (int64, error) {
|
|
||||||
switch v.(type) {
|
|
||||||
case int:
|
|
||||||
return int64(v.(int)), nil
|
|
||||||
case int8:
|
|
||||||
return int64(v.(int8)), nil
|
|
||||||
case int16:
|
|
||||||
return int64(v.(int16)), nil
|
|
||||||
case int32:
|
|
||||||
return int64(v.(int32)), nil
|
|
||||||
case int64:
|
|
||||||
return v.(int64), nil
|
|
||||||
case []byte:
|
|
||||||
i, err := strconv.ParseInt(string(v.([]byte)), 10, 64)
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return i, nil
|
|
||||||
case string:
|
|
||||||
i, err := strconv.ParseInt(v.(string), 10, 64)
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return i, nil
|
|
||||||
}
|
|
||||||
return 0, fmt.Errorf("unsupported type: %v", v)
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue