- 05 Nov, 2013 9 commits
-
-
antirez authored
The previous implementation of SCAN parsed the cursor in the generic function implementing SCAN, SSCAN, HSCAN and ZSCAN. The actual higher-level command implementation only checked for empty keys and return ASAP in that case. The result was that inverting the arguments of, for instance, SSCAN for example and write: SSCAN 0 key Instead of SSCAN key 0 Resulted into no error, since 0 is a non-existing key name very likely. Just the iterator returned no elements at all. In order to fix this issue the code was refactored to extract the function to parse the cursor and return the error. Every higher level command implementation now parses the cursor and later checks if the key exist or not.
-
antirez authored
The previous implementation assumed that the first call always happens with cursor set to 0, this may not be the case, and we want to return 0 anyway otherwise the (broken) client code will loop forever.
-
antirez authored
-
antirez authored
-
antirez authored
This fixes issue #1360 and #1362.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
- 31 Oct, 2013 4 commits
- 30 Oct, 2013 6 commits
- 28 Oct, 2013 8 commits
-
-
antirez authored
-
antirez authored
Thanks to @badboy for reporting.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
Sorting the output helps when we want to turn a non-deterministic into a deterministic command, in that case this is not possible.
-
antirez authored
The new implementation is capable of iterating the keyspace but also sets, hashes, and sorted sets, and can be used to implement SSCAN, ZSCAN and HSCAN.
-
- 25 Oct, 2013 13 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
Pieter Noordhuis authored
The irrelevant bits shouldn't be masked to 1. This can result in slots being skipped when the hash table is resized between calls to the iterator.
-