Commit 56dc9bf6 authored by maxin[马鑫]'s avatar maxin[马鑫]

add return ErrMultiRows

parent 9ce6dc4c
...@@ -200,6 +200,10 @@ func (o *querySet) One(container interface{}, cols ...string) error { ...@@ -200,6 +200,10 @@ func (o *querySet) One(container interface{}, cols ...string) error {
if num == 0 { if num == 0 {
return ErrNoRows return ErrNoRows
} }
if num > 1 {
return ErrMultiRows
}
return nil return nil
} }
......
...@@ -975,11 +975,13 @@ func TestOne(t *testing.T) { ...@@ -975,11 +975,13 @@ func TestOne(t *testing.T) {
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{} user = User{}
err = qs.OrderBy("-Id").Limit(100).One(&user) err = qs.OrderBy("-Id").Limit(100).One(&user)
throwFailNow(t, err) throwFailNow(t, err)
throwFail(t, AssertIs(user.UserName, "nobody")) 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