Skip to content

Commit

Permalink
modify set nilline
Browse files Browse the repository at this point in the history
  • Loading branch information
gengxinMT committed Feb 26, 2019
1 parent 2a23bf6 commit bd8c58d
Showing 1 changed file with 5 additions and 8 deletions.
13 changes: 5 additions & 8 deletions command/sets.go
Expand Up @@ -33,7 +33,6 @@ func SMembers(ctx *Context, txn *db.Transaction) (OnCommit, error) {
if err != nil {
return nil, errors.New("ERR " + err.Error())
}

members, err := set.SMembers()
if err != nil {
return nil, errors.New("ERR " + err.Error())
Expand Down Expand Up @@ -197,7 +196,6 @@ func SInter(ctx *Context, txn *db.Transaction) (OnCommit, error) {
defer siter.Iter.Close()
setsIter[i] = siter
}

max := setsIter[0].Value()
for {
i := 0
Expand Down Expand Up @@ -226,15 +224,14 @@ func SInter(ctx *Context, txn *db.Transaction) (OnCommit, error) {
max = setsIter[0].Value()
}
}

return BytesArray(ctx.Out, members), nil
}

// SDiff returns the members of the set resulting from the difference between the first set and all the successive sets.
func SDiff(ctx *Context, txn *db.Transaction) (OnCommit, error) {
var members [][]byte
var err error
var count int
count := 0
setsIter := make([]*db.SetIter, len(ctx.Args)) //存储每个set当前的迭代器位置
for i, key := range ctx.Args {
set, err := txn.Set([]byte(key))
Expand Down Expand Up @@ -285,8 +282,7 @@ func SDiff(ctx *Context, txn *db.Transaction) (OnCommit, error) {
min = setsIter[i].Value()
}
}
//Find the smallest element in the current member and move the pointer back
members, err = moveMembers(setsIter, min, len(ctx.Args), members)
members, err = moveMembers(setsIter, min, members)
if err != nil {
return nil, errors.New("ERR " + err.Error())
}
Expand All @@ -308,8 +304,9 @@ func SDiff(ctx *Context, txn *db.Transaction) (OnCommit, error) {
return BytesArray(ctx.Out, members), nil
}

func moveMembers(setsIter []*db.SetIter, min []byte, length int, members [][]byte) ([][]byte, error) {
for i := 0; i < length; i++ {
// moveMembers finds the smallest element in the current member and move the pointer back
func moveMembers(setsIter []*db.SetIter, min []byte, members [][]byte) ([][]byte, error) {
for i := 0; i < len(setsIter); i++ {
if !setsIter[i].Valid() {
continue
}
Expand Down

0 comments on commit bd8c58d

Please sign in to comment.