diff --git a/orm_test.go b/orm_test.go index 808e66bf..c01947be 100644 --- a/orm_test.go +++ b/orm_test.go @@ -41,7 +41,7 @@ func init() { func TestSaveAndFind(t *testing.T) { name := "save_and_find" - u := &User{Name: name} + u := &User{Name: name, Age: 1} db.Save(u) if u.Id == 0 { t.Errorf("Should have ID after create record") @@ -59,9 +59,9 @@ func TestSaveAndFind(t *testing.T) { func TestUpdate(t *testing.T) { name, name2, new_name := "update", "update2", "new_update" - user := User{Name: name} + user := User{Name: name, Age: 1} db.Save(&user) - db.Save(&User{Name: name2}) + db.Save(&User{Name: name2, Age: 1}) if user.Id == 0 { t.Errorf("User Id should exist after create") @@ -87,9 +87,9 @@ func TestUpdate(t *testing.T) { func TestDelete(t *testing.T) { name, name2 := "delete", "delete2" - user := User{Name: name} + user := User{Name: name, Age: 1} db.Save(&user) - db.Save(&User{Name: name2}) + db.Save(&User{Name: name2, Age: 1}) orm := db.Delete(&user) orm = db.Where("name = ?", name).First(&User{}) @@ -105,7 +105,7 @@ func TestDelete(t *testing.T) { func TestWhere(t *testing.T) { name := "where" - db.Save(&User{Name: name}) + db.Save(&User{Name: name, Age: 1}) user := &User{} db.Where("Name = ?", name).First(user) @@ -239,11 +239,9 @@ func TestSelect(t *testing.T) { if query.Error == nil { t.Errorf("Should got error with invalid select string") } - debug(query.Error) } func TestPluck(t *testing.T) { var ages []int64 db.Model(&[]User{}).Order("age desc").Pluck("age", &ages) - debug(ages) } diff --git a/sql.go b/sql.go index 10f66ace..4bcea230 100644 --- a/sql.go +++ b/sql.go @@ -92,12 +92,11 @@ func (s *Orm) pluck(value interface{}) { rows, err := s.db.Query(s.Sql, s.SqlVars...) s.Error = err - defer rows.Close() for rows.Next() { - dest := reflect.New(dest_type).Elem() - s.Error = rows.Scan(dest) - dest_out.Set(reflect.Append(dest_out, dest)) + dest := reflect.New(dest_type).Elem().Interface() + s.Error = rows.Scan(&dest) + dest_out.Set(reflect.Append(dest_out, reflect.ValueOf(dest))) } return }