Remove function queryBytes
This commit is contained in:
parent
e90cc79dac
commit
f9f79d11c1
76
scan.go
76
scan.go
|
@ -129,25 +129,6 @@ func genScanResultsByBean(bean interface{}) (interface{}, bool, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func row2mapBytes(rows *core.Rows, types []*sql.ColumnType, fields []string) (map[string][]byte, error) {
|
|
||||||
var scanResults = make([]interface{}, len(fields))
|
|
||||||
for i := 0; i < len(fields); i++ {
|
|
||||||
var s sql.NullString
|
|
||||||
scanResults[i] = &s
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := rows.Scan(scanResults...); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
result := make(map[string][]byte, len(fields))
|
|
||||||
for ii, key := range fields {
|
|
||||||
s := scanResults[ii].(*sql.NullString)
|
|
||||||
result[key] = []byte(s.String)
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (engine *Engine) scanStringInterface(rows *core.Rows, fields []string, types []*sql.ColumnType) ([]interface{}, error) {
|
func (engine *Engine) scanStringInterface(rows *core.Rows, fields []string, types []*sql.ColumnType) ([]interface{}, error) {
|
||||||
var scanResults = make([]interface{}, len(types))
|
var scanResults = make([]interface{}, len(types))
|
||||||
for i := 0; i < len(types); i++ {
|
for i := 0; i < len(types); i++ {
|
||||||
|
@ -227,29 +208,6 @@ func (engine *Engine) scanInterfaces(rows *core.Rows, fields []string, types []*
|
||||||
return scanResultContainers, nil
|
return scanResultContainers, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func rows2maps(rows *core.Rows) (resultsSlice []map[string][]byte, err error) {
|
|
||||||
fields, err := rows.Columns()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
types, err := rows.ColumnTypes()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
for rows.Next() {
|
|
||||||
result, err := row2mapBytes(rows, types, fields)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
resultsSlice = append(resultsSlice, result)
|
|
||||||
}
|
|
||||||
if rows.Err() != nil {
|
|
||||||
return nil, rows.Err()
|
|
||||||
}
|
|
||||||
|
|
||||||
return resultsSlice, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
// row -> map[string]interface{}
|
// row -> map[string]interface{}
|
||||||
|
|
||||||
|
@ -387,6 +345,40 @@ func (engine *Engine) ScanStringMaps(rows *core.Rows) (resultsSlice []map[string
|
||||||
return resultsSlice, nil
|
return resultsSlice, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
// row -> map[string][]byte
|
||||||
|
|
||||||
|
func convertMapStr2Bytes(m map[string]string) map[string][]byte {
|
||||||
|
var r = make(map[string][]byte, len(m))
|
||||||
|
for k, v := range m {
|
||||||
|
r[k] = []byte(v)
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (engine *Engine) scanByteMaps(rows *core.Rows) (resultsSlice []map[string][]byte, err error) {
|
||||||
|
fields, err := rows.Columns()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
types, err := rows.ColumnTypes()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for rows.Next() {
|
||||||
|
result, err := engine.row2mapStr(rows, types, fields)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
resultsSlice = append(resultsSlice, convertMapStr2Bytes(result))
|
||||||
|
}
|
||||||
|
if rows.Err() != nil {
|
||||||
|
return nil, rows.Err()
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultsSlice, nil
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
// row -> []string
|
// row -> []string
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,13 @@ func (session *Session) cacheDelete(table *schemas.Table, tableName, sqlStr stri
|
||||||
pkColumns := table.PKColumns()
|
pkColumns := table.PKColumns()
|
||||||
ids, err := caches.GetCacheSql(cacher, tableName, newsql, args)
|
ids, err := caches.GetCacheSql(cacher, tableName, newsql, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resultsSlice, err := session.queryBytes(newsql, args...)
|
rows, err := session.queryRows(newsql, args...)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
resultsSlice, err := session.engine.ScanStringMaps(rows)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -53,9 +59,9 @@ func (session *Session) cacheDelete(table *schemas.Table, tableName, sqlStr stri
|
||||||
if v, ok := data[col.Name]; !ok {
|
if v, ok := data[col.Name]; !ok {
|
||||||
return errors.New("no id")
|
return errors.New("no id")
|
||||||
} else if col.SQLType.IsText() {
|
} else if col.SQLType.IsText() {
|
||||||
pk = append(pk, string(v))
|
pk = append(pk, v)
|
||||||
} else if col.SQLType.IsNumeric() {
|
} else if col.SQLType.IsNumeric() {
|
||||||
id, err = strconv.ParseInt(string(v), 10, 64)
|
id, err = strconv.ParseInt(v, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,16 +4,6 @@
|
||||||
|
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
func (session *Session) queryBytes(sqlStr string, args ...interface{}) ([]map[string][]byte, error) {
|
|
||||||
rows, err := session.queryRows(sqlStr, args...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
|
|
||||||
return rows2maps(rows)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Query runs a raw sql and return records as []map[string][]byte
|
// Query runs a raw sql and return records as []map[string][]byte
|
||||||
func (session *Session) Query(sqlOrArgs ...interface{}) ([]map[string][]byte, error) {
|
func (session *Session) Query(sqlOrArgs ...interface{}) ([]map[string][]byte, error) {
|
||||||
if session.isAutoClose {
|
if session.isAutoClose {
|
||||||
|
@ -25,7 +15,13 @@ func (session *Session) Query(sqlOrArgs ...interface{}) ([]map[string][]byte, er
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return session.queryBytes(sqlStr, args...)
|
rows, err := session.queryRows(sqlStr, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
return session.engine.scanByteMaps(rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
// QueryString runs a raw sql and return records as []map[string]string
|
// QueryString runs a raw sql and return records as []map[string]string
|
||||||
|
|
Loading…
Reference in New Issue