update issues 2927
This commit is contained in:
parent
7ea143b548
commit
8257509bc4
@ -322,7 +322,9 @@ func (scope *Scope) handleManyToManyPreload(field *Field, conditions []interface
|
||||
preloadDB = preloadDB.Where(preloadConditions[0], preloadConditions[1:]...)
|
||||
}
|
||||
|
||||
rows, err := preloadDB.Rows()
|
||||
preScope := preloadDB.NewScope(preloadDB.Value)
|
||||
rows, err := preScope.rows()
|
||||
defer preScope.trace(NowFunc())
|
||||
|
||||
if scope.Err(err) != nil {
|
||||
return
|
||||
@ -330,7 +332,9 @@ func (scope *Scope) handleManyToManyPreload(field *Field, conditions []interface
|
||||
defer rows.Close()
|
||||
|
||||
columns, _ := rows.Columns()
|
||||
preScope.db.RowsAffected = 0
|
||||
for rows.Next() {
|
||||
preScope.db.RowsAffected++
|
||||
var (
|
||||
elem = reflect.New(fieldType).Elem()
|
||||
fields = scope.New(elem.Addr().Interface()).Fields()
|
||||
|
12
scope.go
12
scope.go
@ -934,8 +934,6 @@ func (scope *Scope) updatedAttrsWithValues(value interface{}) (results map[strin
|
||||
}
|
||||
|
||||
func (scope *Scope) row() *sql.Row {
|
||||
defer scope.trace(NowFunc())
|
||||
|
||||
result := &RowQueryResult{}
|
||||
scope.InstanceSet("row_query_result", result)
|
||||
scope.callCallbacks(scope.db.parent.callbacks.rowQueries)
|
||||
@ -944,8 +942,6 @@ func (scope *Scope) row() *sql.Row {
|
||||
}
|
||||
|
||||
func (scope *Scope) rows() (*sql.Rows, error) {
|
||||
defer scope.trace(NowFunc())
|
||||
|
||||
result := &RowsQueryResult{}
|
||||
scope.InstanceSet("row_query_result", result)
|
||||
scope.callCallbacks(scope.db.parent.callbacks.rowQueries)
|
||||
@ -994,10 +990,13 @@ func (scope *Scope) pluck(column string, value interface{}) *Scope {
|
||||
scope.Search.Select(column)
|
||||
}
|
||||
|
||||
defer scope.trace(NowFunc())
|
||||
rows, err := scope.rows()
|
||||
if scope.Err(err) == nil {
|
||||
defer rows.Close()
|
||||
scope.db.RowsAffected = 0
|
||||
for rows.Next() {
|
||||
scope.db.RowsAffected++
|
||||
elem := reflect.New(dest.Type().Elem()).Interface()
|
||||
scope.Err(rows.Scan(elem))
|
||||
dest.Set(reflect.Append(dest, reflect.ValueOf(elem).Elem()))
|
||||
@ -1027,7 +1026,12 @@ func (scope *Scope) count(value interface{}) *Scope {
|
||||
}
|
||||
}
|
||||
scope.Search.ignoreOrderQuery = true
|
||||
defer scope.trace(NowFunc())
|
||||
scope.Err(scope.row().Scan(value))
|
||||
if !scope.HasError() {
|
||||
scope.db.RowsAffected++
|
||||
}
|
||||
|
||||
return scope
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user