MCPcopy Create free account
hub / github.com/distributedio/titan / zAnyOrderRange

Function zAnyOrderRange

command/zsets.go:68–104  ·  view source on GitHub ↗
(ctx *Context, txn *db.Transaction, positiveOrder bool)

Source from the content-addressed store, hash-verified

66}
67
68func zAnyOrderRange(ctx *Context, txn *db.Transaction, positiveOrder bool) (OnCommit, error) {
69 key := []byte(ctx.Args[0])
70 start, err := strconv.ParseInt(ctx.Args[1], 10, 64)
71 if err != nil {
72 return nil, ErrInteger
73 }
74 stop, err := strconv.ParseInt(ctx.Args[2], 10, 64)
75 if err != nil {
76 return nil, ErrInteger
77 }
78 withScore := bool(false)
79 if len(ctx.Args) >= 4 {
80 if strings.ToUpper(ctx.Args[3]) == "WITHSCORES" {
81 withScore = true
82 }
83 }
84
85 zset, err := txn.ZSet(key)
86 if err != nil {
87 if err == db.ErrTypeMismatch {
88 return nil, ErrTypeMismatch
89 }
90 return nil, errors.New("ERR " + err.Error())
91 }
92 if !zset.Exist() {
93 return BytesArray(ctx.Out, nil), nil
94 }
95
96 items, err := zset.ZAnyOrderRange(start, stop, withScore, positiveOrder)
97 if err != nil {
98 return nil, errors.New("ERR " + err.Error())
99 }
100 if len(items) == 0 {
101 return BytesArray(ctx.Out, nil), nil
102 }
103 return BytesArray(ctx.Out, items), nil
104}
105
106func ZRangeByScore(ctx *Context, txn *db.Transaction) (OnCommit, error) {
107 return zAnyOrderRangeByScore(ctx, txn, true)

Callers 2

ZRangeFunction · 0.85
ZRevRangeFunction · 0.85

Calls 5

BytesArrayFunction · 0.85
ZSetMethod · 0.80
ZAnyOrderRangeMethod · 0.80
ErrorMethod · 0.65
ExistMethod · 0.65

Tested by

no test coverage detected