merge
This commit is contained in:
parent
4f03689628
commit
05a5611e59
|
@ -62,52 +62,3 @@ func Interface2String(v interface{}) (string, error) {
|
|||
return "", fmt.Errorf("convert assign string unsupported type: %#v", vv)
|
||||
}
|
||||
}
|
||||
|
||||
func Interface2Interface(v interface{}) (interface{}, error) {
|
||||
if v == nil {
|
||||
return nil, nil
|
||||
}
|
||||
switch vv := v.(type) {
|
||||
case *int64:
|
||||
return *vv, nil
|
||||
case *int8:
|
||||
return *vv, nil
|
||||
case *sql.NullString:
|
||||
if vv.Valid {
|
||||
return vv.String, nil
|
||||
}
|
||||
return "", nil
|
||||
case *sql.RawBytes:
|
||||
if len([]byte(*vv)) > 0 {
|
||||
return []byte(*vv), nil
|
||||
}
|
||||
return nil, nil
|
||||
case *sql.NullInt32:
|
||||
if vv.Valid {
|
||||
return vv.Int32, nil
|
||||
}
|
||||
return 0, nil
|
||||
case *sql.NullInt64:
|
||||
if vv.Valid {
|
||||
return vv.Int64, nil
|
||||
}
|
||||
return 0, nil
|
||||
case *sql.NullFloat64:
|
||||
if vv.Valid {
|
||||
return vv.Float64, nil
|
||||
}
|
||||
return 0, nil
|
||||
case *sql.NullBool:
|
||||
if vv.Valid {
|
||||
return vv.Bool, nil
|
||||
}
|
||||
return nil, nil
|
||||
case *sql.NullTime:
|
||||
if vv.Valid {
|
||||
return vv.Time.Format("2006-01-02 15:04:05"), nil
|
||||
}
|
||||
return "", nil
|
||||
default:
|
||||
return "", fmt.Errorf("convert assign string unsupported type: %#v", vv)
|
||||
}
|
||||
}
|
||||
|
|
22
scan.go
22
scan.go
|
@ -134,28 +134,6 @@ func genScanResults(driver dialects.Driver, types []*sql.ColumnType) ([]interfac
|
|||
return scanResults, nil
|
||||
}
|
||||
|
||||
func row2mapStr(rows *core.Rows, types []*sql.ColumnType, fields []string) (map[string]string, error) {
|
||||
var scanResults = make([]interface{}, len(fields))
|
||||
for i := 0; i < len(fields); i++ {
|
||||
var s sql.NullString
|
||||
scanResults[i] = &s
|
||||
}
|
||||
|
||||
if err := engine.driver.Scan(&dialects.ScanContext{
|
||||
DBLocation: engine.DatabaseTZ,
|
||||
UserLocation: engine.TZLocation,
|
||||
}, rows, types, scanResults...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := make(map[string]string, len(fields))
|
||||
for ii, key := range fields {
|
||||
s := scanResults[ii].(*sql.NullString)
|
||||
result[key] = s.String
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func genScanResult(driver dialects.Driver, fieldValue reflect.Value, columnType *sql.ColumnType) (interface{}, error) {
|
||||
fieldType := fieldValue.Type()
|
||||
if fieldValue.Type().Implements(scannerType) || fieldValue.Type().Implements(conversionType) {
|
||||
|
|
|
@ -47,7 +47,7 @@ func (session *Session) rows2Strings(rows *core.Rows) (resultsSlice []map[string
|
|||
return nil, err
|
||||
}
|
||||
for rows.Next() {
|
||||
result, err := row2mapStr(rows, types, fields)
|
||||
result, err := session.engine.row2mapStr(rows, types, fields)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ func (session *Session) rows2SliceString(rows *core.Rows) (resultsSlice [][]stri
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
resultsSlice = append(resultsSlice, result)
|
||||
resultsSlice = append(resultsSlice, record)
|
||||
}
|
||||
|
||||
return resultsSlice, nil
|
||||
|
|
Loading…
Reference in New Issue