Commit 520a417c authored by astaxie's avatar astaxie

Merge pull request #1874 from Maxgis/master

change limit 1000 to 1,reduce the amount the data
parents e89f5623 56dc9bf6
...@@ -192,16 +192,18 @@ func (o *querySet) All(container interface{}, cols ...string) (int64, error) { ...@@ -192,16 +192,18 @@ func (o *querySet) All(container interface{}, cols ...string) (int64, error) {
// query one row data and map to containers. // query one row data and map to containers.
// cols means the columns when querying. // cols means the columns when querying.
func (o *querySet) One(container interface{}, cols ...string) error { func (o *querySet) One(container interface{}, cols ...string) error {
o.limit = 1
num, err := o.orm.alias.DbBaser.ReadBatch(o.orm.db, o, o.mi, o.cond, container, o.orm.alias.TZ, cols) num, err := o.orm.alias.DbBaser.ReadBatch(o.orm.db, o, o.mi, o.cond, container, o.orm.alias.TZ, cols)
if err != nil { if err != nil {
return err return err
} }
if num > 1 {
return ErrMultiRows
}
if num == 0 { if num == 0 {
return ErrNoRows return ErrNoRows
} }
if num > 1 {
return ErrMultiRows
}
return nil return nil
} }
......
...@@ -993,12 +993,19 @@ func TestOne(t *testing.T) { ...@@ -993,12 +993,19 @@ func TestOne(t *testing.T) {
var user User var user User
qs := dORM.QueryTable("user") qs := dORM.QueryTable("user")
err := qs.One(&user) err := qs.One(&user)
throwFail(t, AssertIs(err, ErrMultiRows)) throwFail(t, err)
user = User{} user = User{}
err = qs.OrderBy("Id").Limit(1).One(&user) err = qs.OrderBy("Id").Limit(1).One(&user)
throwFailNow(t, err) throwFailNow(t, err)
throwFail(t, AssertIs(user.UserName, "slene")) throwFail(t, AssertIs(user.UserName, "slene"))
throwFail(t, AssertNot(err, ErrMultiRows))
user = User{}
err = qs.OrderBy("-Id").Limit(100).One(&user)
throwFailNow(t, err)
throwFail(t, AssertIs(user.UserName, "nobody"))
throwFail(t, AssertNot(err, ErrMultiRows))
err = qs.Filter("user_name", "nothing").One(&user) err = qs.Filter("user_name", "nothing").One(&user)
throwFail(t, AssertIs(err, ErrNoRows)) throwFail(t, AssertIs(err, ErrNoRows))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment