Commit Graph

79 Commits

Author SHA1 Message Date
4dada1b5bc Fixed issue #516 (ZINTERSTORE mixing sets and zsets).
Weeks ago trying to fix an harmless GCC warning I introduced a bug in
the ziplist-encoded implementations of sorted sets.

The bug completely broke zuiNext() iterator, that is used in the
ZINTERSTORE and ZUNIONSTORE implementation, so those two commands are no
longer reliable starting from Redis version 2.4.12 and latest 2.6.0-RC
releases.

This commit fixes the problem and adds a regression test.
2012-05-23 11:12:38 +02:00
9de5d4600a A few compiler warnings suppressed. 2012-04-24 19:35:03 +02:00
feb282883b zzlIsInRange() now is capable of handling empty sorted sets that may end inside the data set when loading very old RDB files produced by early-stage versions of Redis. 2012-02-22 09:52:10 +01:00
fe7be46025 bzero -> memset 2012-02-21 10:06:04 +01:00
7faa1f075b added a comment on top of the zslRandomLevel() function 2012-01-16 09:39:04 +01:00
d8bd12f984 error in comment fixed 2012-01-11 20:25:51 +01:00
256356ffd8 Prevent NaN scores in sorted sets resulting from calls to ZUNIONSTORE and ZINTERSTORE. 2011-12-23 09:27:31 +01:00
706b32e0e0 Fix issue #247 : Accepting non-integer parameters when shouldn't
Using `getLongFromObjectOrReply` instead of `atoi` if possible.
The following functions are modified.

* lrangeCommand
* ltrimCommand
* lremCommand
* lindexCommand
* lsetCommand
* zunionInterGenericCommand
* genericZrangebyscoreCommand
* sortCommand
2011-12-19 19:48:35 +08:00
a244a13b4c added assertion in zslInsert() that ensures the inserted element score is not NaN 2011-12-18 11:12:58 +01:00
d93f9a8644 string to number API is now more strict not accepting spaces before or after the number. A few tests converted to match the new error messages using the word float instead of double. 2011-11-14 15:34:44 +01:00
c0ba9ebe13 dict.c API names modified to be more coincise and consistent. 2011-11-08 17:07:55 +01:00
f013f40003 Fixed a few warnings compiling on Linux. 2011-10-23 10:57:01 +02:00
eab0e26e03 replaced redisAssert() with redisAssertWithInfo() in a shitload of places. 2011-10-04 18:43:03 +02:00
0cfc894066 Remove ZCOUNT branches from generic RANGEBYSCORE code 2011-10-03 14:23:31 +02:00
62d774e5ba Use element rank instead of iterating in ZCOUNT 2011-10-03 14:14:43 +02:00
3f7b2b1f30 Variadic ZREM 2011-05-31 20:15:18 +02:00
ef231a7c56 Variadic ZADD 2011-05-31 17:47:34 +02:00
d200342ac2 Fixed typo in comment 2011-05-24 10:35:58 +02:00
521ddcce14 Fix for ZUNIONSTORE bug when there is an empty set among input sets. Regression test added. 2011-05-19 17:58:52 +02:00
cb16b6c389 Fixed misuse of the new iterator semantics in ZUNIONSTORE 2011-05-15 17:28:06 +02:00
d070abe44c Fix for a possible bug related to ZINTER/UNIONSTORE called with the same source set more than one time. 2011-05-15 15:33:01 +02:00
a5dce40726 if /dev/urandom is not available use rand() to get a random node name 2011-05-04 10:30:22 +02:00
c772d9c6e7 take a hashslot -> keys index, will be used for cluster rehasing 2011-04-28 19:00:33 +02:00
02e6006532 Explicitly zero zval since it is stored on the stack 2011-04-06 16:39:22 +02:00
100ed062c0 Test for ENCODING_SKIPLIST instead of ENCODING_RAW 2011-04-06 16:17:07 +02:00
48991620f7 Remove sorted set when empty after ZREMRANGEBY* 2011-03-21 23:54:46 +01:00
69298a05eb Offset should be size_t 2011-03-14 10:53:53 +01:00
72690afdd2 Remove unused function 2011-03-14 10:53:14 +01:00
e53ca04b50 Test for empty inner range when looking for elements in range 2011-03-11 18:18:02 +01:00
8588bfa370 Make zzl API unaware of the robj where the ziplist is stored 2011-03-11 17:06:07 +01:00
df26a0ae0b Encode sorted set after loading from dump 2011-03-10 17:50:13 +01:00
255eebe221 Convert encoding of result when in limits 2011-03-10 17:02:05 +01:00
dba3a153a7 Remove comment 2011-03-10 16:53:20 +01:00
56ce42faf1 Generic iterator code for usage in ZUNIONSTORE/ZINTERSTORE 2011-03-10 16:34:52 +01:00
bbfe232f60 Make zzlLength take a ziplist argument 2011-03-10 16:17:14 +01:00
cc4c964b33 Fix used function in ZCARD 2011-03-09 16:13:39 +01:00
a669d5e999 Convert encoding when thresholds overflow 2011-03-09 16:13:06 +01:00
d1c920c538 Support dual encoding for more commands 2011-03-09 12:37:59 +01:00
aff255c81d Support dual encoding for ZRANGEBYSCORE et al 2011-03-09 11:29:21 +01:00
4c5f0966b2 Helpers to move around in encoded sorted set 2011-03-09 11:06:31 +01:00
63b7b7fb34 Support dual encoding for ZREMRANGEBYRANK 2011-03-09 10:30:55 +01:00
5d1b4fb698 Support dual encoding for ZRANGE 2011-03-09 00:12:29 +01:00
4a14dbbac2 Look up and remove elements by range 2011-03-08 23:56:33 +01:00
9f9b60f974 Typo 2011-03-08 22:14:46 +01:00
8218db3dae Little less obfuscation 2011-03-08 21:36:46 +01:00
0b10e10444 Support dual encoding in ZREM 2011-03-08 17:11:15 +01:00
3ca7532a2d Don't encode element argument when dealing with ziplist 2011-03-08 16:51:41 +01:00
21c5b508a4 Initial work for ziplist backed sorted sets 2011-03-08 16:44:22 +01:00
45290ad9bb Rename zset range functions 2011-03-08 10:57:53 +01:00
8e1b327706 Test for ranges where min > max 2011-03-08 10:57:39 +01:00