From 05a5611e59fde6bb4d7a1c191dfd702914f0f518 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 4 Jul 2021 23:20:30 +0800 Subject: [PATCH] merge --- convert/string.go | 49 ----------------------------------------------- scan.go | 22 --------------------- session_query.go | 4 ++-- 3 files changed, 2 insertions(+), 73 deletions(-) diff --git a/convert/string.go b/convert/string.go index bf1c5ff4..e39f94a1 100644 --- a/convert/string.go +++ b/convert/string.go @@ -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) - } -} diff --git a/scan.go b/scan.go index 0d8e44aa..d232d138 100644 --- a/scan.go +++ b/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) { diff --git a/session_query.go b/session_query.go index 0bb1595a..07997cdd 100644 --- a/session_query.go +++ b/session_query.go @@ -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