Skip to content

Commit

Permalink
bug fix: Set size
Browse files Browse the repository at this point in the history
  • Loading branch information
holys committed Aug 16, 2014
1 parent d6c60c6 commit e818784
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
16 changes: 7 additions & 9 deletions ledis/t_set.go
Expand Up @@ -490,7 +490,6 @@ func (db *DB) sStoreGeneric(dstKey []byte, optType byte, keys ...[]byte) (int64,

var err error
var ek []byte
var num int64 = 0
var v [][]byte

switch optType {
Expand All @@ -513,22 +512,21 @@ func (db *DB) sStoreGeneric(dstKey []byte, optType byte, keys ...[]byte) (int64,

ek = db.sEncodeSetKey(dstKey, m)

if v, err := db.db.Get(ek); err != nil {
if _, err := db.db.Get(ek); err != nil {
return 0, err
} else if v == nil {
num++
}

t.Put(ek, nil)

}

if _, err = db.sIncrSize(dstKey, num); err != nil {
var num = int64(len(v))
sk := db.sEncodeSizeKey(dstKey)
t.Put(sk, PutInt64(num))

if err = t.Commit(); err != nil {
return 0, err
}

err = t.Commit()
return num, err
return num, nil
}

func (db *DB) SClear(key []byte) (int64, error) {
Expand Down
4 changes: 3 additions & 1 deletion ledis/t_set_test.go
Expand Up @@ -147,7 +147,7 @@ func testUnion(db *DB, t *testing.T) {
m2 := []byte("m2")
m3 := []byte("m3")
db.SAdd(key, m1, m2)
db.SAdd(key1, m1, m3)
db.SAdd(key1, m1, m2, m3)
db.SAdd(key2, m2, m3)
if _, err := db.sUnionGeneric(key, key2); err != nil {
t.Fatal(err)
Expand All @@ -158,11 +158,13 @@ func testUnion(db *DB, t *testing.T) {
}

dstkey := []byte("union_dsk")
db.SAdd(dstkey, []byte("x"))
if num, err := db.SUnionStore(dstkey, key1, key2); err != nil {
t.Fatal(err)
} else if num != 3 {
t.Fatal(num)
}

if _, err := db.SMembers(dstkey); err != nil {
t.Fatal(err)
}
Expand Down

0 comments on commit e818784

Please sign in to comment.