forked from mirror/gorm
remove old elements from the output parameter of Pluck()
This commit is contained in:
parent
7bc3561503
commit
8d1e6bc0f8
31
main_test.go
31
main_test.go
|
@ -1110,6 +1110,37 @@ func TestCountWithHaving(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPluck(t *testing.T) {
|
||||||
|
db := DB.New()
|
||||||
|
db.Delete(User{})
|
||||||
|
defer db.Delete(User{})
|
||||||
|
|
||||||
|
DB.Create(&User{Id: 1, Name: "user1"})
|
||||||
|
DB.Create(&User{Id: 2, Name: "user2"})
|
||||||
|
DB.Create(&User{Id: 3, Name: "user3"})
|
||||||
|
|
||||||
|
var ids []int64
|
||||||
|
err := db.Model(User{}).Order("id").Pluck("id", &ids).Error
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Error("Unexpected error on pluck")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(ids) != 3 || ids[0] != 1 || ids[1] != 2 || ids[2] != 3 {
|
||||||
|
t.Error("Unexpected result on pluck")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = db.Model(User{}).Order("id").Pluck("id", &ids).Error
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Error("Unexpected error on pluck again")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(ids) != 3 || ids[0] != 1 || ids[1] != 2 || ids[2] != 3 {
|
||||||
|
t.Error("Unexpected result on pluck again")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func BenchmarkGorm(b *testing.B) {
|
func BenchmarkGorm(b *testing.B) {
|
||||||
b.N = 2000
|
b.N = 2000
|
||||||
for x := 0; x < b.N; x++ {
|
for x := 0; x < b.N; x++ {
|
||||||
|
|
4
scope.go
4
scope.go
|
@ -984,6 +984,10 @@ func (scope *Scope) pluck(column string, value interface{}) *Scope {
|
||||||
return scope
|
return scope
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if dest.Len() > 0 {
|
||||||
|
dest.Set(reflect.Zero(dest.Type()))
|
||||||
|
}
|
||||||
|
|
||||||
if query, ok := scope.Search.selects["query"]; !ok || !scope.isQueryForColumn(query, column) {
|
if query, ok := scope.Search.selects["query"]; !ok || !scope.isQueryForColumn(query, column) {
|
||||||
scope.Search.Select(column)
|
scope.Search.Select(column)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue