27398 Commits

Author SHA1 Message Date
antirez
32289d5719 BITFIELD: refactoring & fix of retval on FAIL. 2016-02-29 09:08:46 +01:00
antirez
9d34efb3f5 BITFIELD: Fix #<index> form parsing. 2016-02-26 15:53:29 +01:00
antirez
11745e0981 BITFIELD: Fix #<index> form parsing. 2016-02-26 15:53:29 +01:00
antirez
b722e12f77 BITFIELD: Support #<index> offsets form. 2016-02-26 15:16:24 +01:00
antirez
2800d090a7 BITFIELD: Support #<index> offsets form. 2016-02-26 15:16:24 +01:00
antirez
5b3ab9d132 BITFIELD command initial implementation.
The new bitfield command is an extension to the Redis bit operations,
where not just single bit operations are performed, but the array of
bits composing a string, can be addressed at random, not aligned
offsets, with any width unsigned and signed integers like u8, s5, u10
(up to 64 bit signed integers and 63 bit unsigned integers).

The BITFIELD command supports subcommands that can SET, GET, or INCRBY
those arbitrary bit counters, with multiple overflow semantics.

Trivial and credits:

A similar command was imagined a few times in the past, but for
some reason looked a bit far fetched or not well specified.
Finally the command was proposed again in a clear form by
Yoav Steinberg from Redis Labs, that proposed a set of commands on
arbitrary sized integers stored at bit offsets.

Starting from this proposal I wrote an initial specification of a single
command with sub-commands similar to what Yoav envisioned, using short
names for types definitions, and adding control on the overflow.

This commit is the resulting implementation.

Examples:

    BITFIELD mykey OVERFLOW wrap INCRBY i2 10 -1 GET i2 10
2016-02-26 15:00:19 +01:00
antirez
70af626d61 BITFIELD command initial implementation.
The new bitfield command is an extension to the Redis bit operations,
where not just single bit operations are performed, but the array of
bits composing a string, can be addressed at random, not aligned
offsets, with any width unsigned and signed integers like u8, s5, u10
(up to 64 bit signed integers and 63 bit unsigned integers).

The BITFIELD command supports subcommands that can SET, GET, or INCRBY
those arbitrary bit counters, with multiple overflow semantics.

Trivial and credits:

A similar command was imagined a few times in the past, but for
some reason looked a bit far fetched or not well specified.
Finally the command was proposed again in a clear form by
Yoav Steinberg from Redis Labs, that proposed a set of commands on
arbitrary sized integers stored at bit offsets.

Starting from this proposal I wrote an initial specification of a single
command with sub-commands similar to what Yoav envisioned, using short
names for types definitions, and adding control on the overflow.

This commit is the resulting implementation.

Examples:

    BITFIELD mykey OVERFLOW wrap INCRBY i2 10 -1 GET i2 10
2016-02-26 15:00:19 +01:00
James Rouzier
9ebde01b73 If the unit of a timeout is seconds treat it a float 2016-02-23 12:05:29 -05:00
James Rouzier
eca0187370 If the unit of a timeout is seconds treat it a float 2016-02-23 12:05:29 -05:00
Salvatore Sanfilippo
46ae5dea92 Merge pull request #3101 from itamarhaber/geohumanized
Fixes double conversions in GEO
2016-02-19 12:08:24 +01:00
Salvatore Sanfilippo
438ae496af Merge pull request #3101 from itamarhaber/geohumanized
Fixes double conversions in GEO
2016-02-19 12:08:24 +01:00
Itamar Haber
8d04d2b6dd Eliminates engineers near the equator & prime meridian 2016-02-18 15:11:30 -08:00
Itamar Haber
b5149f0868 Eliminates engineers near the equator & prime meridian 2016-02-18 15:11:30 -08:00
Itamar Haber
12e20755f6 Fixes a typo in a comment 2016-02-18 15:01:34 -08:00
Itamar Haber
41030ae2de Fixes a typo in a comment 2016-02-18 15:01:34 -08:00
Itamar Haber
65c3e7353d Adjusts accuracy for GEODIST 2016-02-18 15:00:39 -08:00
Itamar Haber
4e9c3027b1 Adjusts accuracy for GEODIST 2016-02-18 15:00:39 -08:00
antirez
f33d9bd114 addReplyHumanLongDouble() API added.
Send a long double or double as a bulk reply, in a human friendly
format.
2016-02-18 22:08:50 +01:00
antirez
cf42c48adc addReplyHumanLongDouble() API added.
Send a long double or double as a bulk reply, in a human friendly
format.
2016-02-18 22:08:50 +01:00
antirez
3b3a959c85 GEOADD STORE/STOREDIST tests. 2016-02-18 14:42:42 +01:00
antirez
f4befcc0ff GEOADD STORE/STOREDIST tests. 2016-02-18 14:42:42 +01:00
antirez
416adf1a9c New options for GEORADIUS: STORE and STOREDIST.
Related to issue #3019.
2016-02-18 10:24:16 +01:00
antirez
bb75ecddfd New options for GEORADIUS: STORE and STOREDIST.
Related to issue #3019.
2016-02-18 10:24:16 +01:00
antirez
1f0f75e71f Cluster: resharding test provides more state when failing.
Now elements added to lists are incremental numbers in order to
understand, when inconsistencies are found, what is the order in which
the elements were added. Also the error now provides both the expected
and found value.
2016-02-17 12:30:00 +01:00
antirez
15f37ebd4a Cluster: resharding test provides more state when failing.
Now elements added to lists are incremental numbers in order to
understand, when inconsistencies are found, what is the order in which
the elements were added. Also the error now provides both the expected
and found value.
2016-02-17 12:30:00 +01:00
antirez
26e5f3ff33 Include full paths on RDB/AOF files errors.
Close #3086.
2016-02-15 16:15:01 +01:00
antirez
b0ec22f948 Include full paths on RDB/AOF files errors.
Close #3086.
2016-02-15 16:15:01 +01:00
antirez
c2fd1784c2 Remove Lua state reference from buffers in lua_cmsgpack. 2016-02-10 09:12:17 +01:00
antirez
fcd7df5eab Remove Lua state reference from buffers in lua_cmsgpack. 2016-02-10 09:12:17 +01:00
Salvatore Sanfilippo
d8aee5a0eb Merge pull request #3072 from yoav-steinberg/cmsgpack_fix
cmsgpack: pass correct osize values to lua allocator
2016-02-10 09:03:29 +01:00
Salvatore Sanfilippo
66dbc5e61f Merge pull request #3072 from yoav-steinberg/cmsgpack_fix
cmsgpack: pass correct osize values to lua allocator
2016-02-10 09:03:29 +01:00
David Cavar
5174fcdf94 Reverse redirect address parse
Fix issue in case the redirect address is in ipv6 format. Parse from behind to extract last part of the response which represents actual port.
2016-02-09 15:04:42 +01:00
David Cavar
c30ffaab05 Reverse redirect address parse
Fix issue in case the redirect address is in ipv6 format. Parse from behind to extract last part of the response which represents actual port.
2016-02-09 15:04:42 +01:00
yoav@monfort.co.il
071645d76f cmsgpack: pass correct osize values to lua allocator, update correct buf free space in cmsgpack 2016-02-07 20:24:28 +02:00
yoav@monfort.co.il
fdbefc9d83 cmsgpack: pass correct osize values to lua allocator, update correct buf free space in cmsgpack 2016-02-07 20:24:28 +02:00
Salvatore Sanfilippo
e7bd2d181c Merge pull request #3059 from itamarhaber/keyspacenotif-lrem
Adds keyspace notifications for LREM
2016-02-05 15:52:57 +01:00
Salvatore Sanfilippo
aa953b6ec3 Merge pull request #3059 from itamarhaber/keyspacenotif-lrem
Adds keyspace notifications for LREM
2016-02-05 15:52:57 +01:00
Itamar Haber
7bfe0f41c8 Fixes a typo 2016-02-03 11:04:09 -08:00
Itamar Haber
31a70a8bcf Fixes a typo 2016-02-03 11:04:09 -08:00
Itamar Haber
bfd072e7d3 Adds keyspace notifications for lrem 2016-02-02 09:58:19 -08:00
Itamar Haber
68e779f34b Adds keyspace notifications for lrem 2016-02-02 09:58:19 -08:00
antirez
e9cd997869 Fix to Cluster test to support @busport format. 2016-02-02 11:03:53 +01:00
antirez
5b7b235367 Fix to Cluster test to support @busport format. 2016-02-02 11:03:53 +01:00
antirez
efdd050581 Cluster: redis-trib: support @busport format in ClusterNode. 2016-02-02 08:27:36 +01:00
antirez
cbcffed907 Cluster: redis-trib: support @busport format in ClusterNode. 2016-02-02 08:27:36 +01:00
antirez
815d9b5dc7 Cluster: store busport with different separator in CLUSTER NODES.
We need to be able to correctly parse the node address in the case of
IPv6 addresses.
2016-02-02 08:20:04 +01:00
antirez
b841f3ad1a Cluster: store busport with different separator in CLUSTER NODES.
We need to be able to correctly parse the node address in the case of
IPv6 addresses.
2016-02-02 08:20:04 +01:00
antirez
40ff86ee34 Cluster announce: WIP, allow building again. 2016-02-01 18:16:25 +01:00
antirez
92b9de2417 Cluster announce: WIP, allow building again. 2016-02-01 18:16:25 +01:00
antirez
994afb81ee Cluster announce ip/port/bus-port documented in redis.conf. 2016-02-01 18:08:01 +01:00