antirez
998001fbf2
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-10-25 11:50:15 +02:00
Salvatore Sanfilippo
12d5be1bf2
Merge pull request #5459 from itamarhaber/xpending_count_underflow
...
A fix to XPENDING's count underflow
2018-10-25 11:50:04 +02:00
antirez
6e11ef30e0
Fix XRANGE COUNT option for value of 0.
2018-10-25 11:36:24 +02:00
antirez
f06e8c331c
Fix typo in streamReplyWithRange() top comment.
2018-10-24 16:28:44 +02:00
Itamar Haber
edeaf85cab
Plugs a potential underflow
2018-10-17 19:33:11 +03:00
antirez
144832ee67
Streams: use bulk replies instead of status replies.
...
They play better with Lua scripting, otherwise Lua will see status
replies as "ok" = "string" which is very odd, and actually as @oranagra
reasoned in issue #5456 in the rest of the Redis code base there was no
such concern as saving a few bytes when the protocol is emitted.
2018-10-17 17:21:09 +02:00
Itamar Haber
acb3b55280
Corrects inline documentation of syntax
2018-10-17 16:13:55 +03:00
antirez
fdb575993f
Fix conditional in XGROUP.
2018-10-17 13:00:35 +02:00
antirez
492fd5c011
Fix XGROUP CREATE MKSTREAM handling of .
2018-10-17 12:10:52 +02:00
antirez
2e3d403349
Process MKSTREAM option of XGROUP CREATE at a later time.
...
This avoids issues with having to replicate a command that produced
errors.
2018-10-17 12:04:06 +02:00
antirez
cb27dd1a68
XGROUP CREATE: MKSTREAM option for automatic stream creation.
2018-10-17 11:27:27 +02:00
antirez
ea78a1db32
XSETID: accept IDs based on last entry.
...
Related to #5426 .
2018-10-16 16:46:17 +02:00
antirez
e3446fea9e
Streams: XSTREAM SETID -> XSETID.
...
Keep vanilla stream commands at toplevel, see #5426 .
2018-10-16 13:17:14 +02:00
Salvatore Sanfilippo
af09df08d7
Merge pull request #5426 from soloestoy/feature-xstream
...
Bugfix data inconsistency after aof rewrite, and add XSTREAM command.
2018-10-16 13:10:36 +02:00
antirez
3640e029d6
Make comment about nack->consumer test for minidle more obvious.
...
Related to #5437 .
2018-10-15 12:01:17 +02:00
antirez
0b1784b188
Streams: use propagate_last_id itself as streamPropagateGroupID trigger.
...
Avoid storing the dirty value. See #5437 .
2018-10-15 11:52:24 +02:00
antirez
820b1e6e7d
Streams: better naming: lastid_updated -> propagate_last_id.
...
See #5437 but also I updated a previous usage of the same var name.
2018-10-15 11:50:18 +02:00
zhaozhao.zz
5cc0522303
Streams: panic if streamID invalid after check, should not be possible.
2018-10-11 21:46:47 +08:00
zhaozhao.zz
08ae522ff9
Streams: propagate lastid in XCLAIM when it has effect
2018-10-11 21:44:20 +08:00
zhaozhao.zz
183ef7ae9b
Streams: XCLAIM ignore minidle if NACK is created by FORCE
...
Because the NACK->consumer is NULL, if idletime < minidle
the NACK does not belong to any consumer, then redis will crash
in XPENDING.
2018-10-11 21:20:49 +08:00
zhaozhao.zz
4dc48a0d11
Streams: bugfix XCLAIM should propagate group name not consumer name
2018-10-11 21:12:09 +08:00
antirez
c9d9ae7baa
Fix propagation of consumer groups last ID.
...
Issue #5433 .
2018-10-10 12:51:02 +02:00
zhaozhao.zz
480e299436
Streams: rewrite id in XSTREAM CREATE *
2018-10-09 16:22:30 +08:00
zhaozhao.zz
ec511fa709
Streams: add a new command XTREAM
...
XSTREAM CREATE <key> <id or *> -- Create a new empty stream.
XSTREAM SETID <key> <id or $> -- Set the current stream ID.
2018-10-09 13:11:04 +08:00
antirez
3e78344d87
Refactoring of XADD / XTRIM MAXLEN rewriting.
...
See #5141 .
2018-10-08 12:05:22 +02:00
Salvatore Sanfilippo
e5f1de1448
Merge pull request #5141 from soloestoy/fix-xtrim-inconsistency
...
Fix XTRIM and XADD with MAXLEN inconsistency
2018-10-08 12:00:00 +02:00
antirez
68c0e6e331
xclaimCommand(): fix comment typos.
2018-10-04 17:34:06 +02:00
antirez
32e0d2376f
streamAppendItem(): Update the radix tree pointer only if changed.
2018-10-02 19:45:33 +02:00
antirez
c7c3b23787
streamIteratorRemoveEntry(): set back lp only if pointer changed.
...
Most of the times the pointer will remain the same since integers of
similar size don't take more space in listpacks.
Related to #5210 .
2018-10-02 16:20:40 +02:00
Salvatore Sanfilippo
9fe7cd8f14
Merge pull request #5210 from soloestoy/raxinsert-in-xdel
...
Streams: update listpack with new pointer in XDEL
2018-10-02 16:18:55 +02:00
antirez
9e0e5ccbf4
Fix XINFO comment for consistency.
2018-10-01 11:38:58 +02:00
Guy Korland
8b87876094
add missing argument to function doc
2018-09-21 02:46:31 +03:00
Sascha Roland
c1e9186f06
#5299 Fix blocking XREAD for streams that ran dry
...
The conclusion, that a xread request can be answered syncronously in
case that the stream's last_id is larger than the passed last-received-id
parameter, assumes, that there must be entries present, which could be
returned immediately.
This assumption fails for empty streams that actually contained some
entries which got removed by xdel, ... .
As result, the client is answered synchronously with an empty result,
instead of blocking for new entries to arrive.
An additional check for a non-empty stream is required.
2018-09-04 13:13:36 +02:00
zhaozhao.zz
a3a1460525
Streams: update listpack with new pointer in XDEL
2018-08-04 01:06:53 +08:00
Salvatore Sanfilippo
39c70e728b
Merge pull request #5146 from 0xtonyxia/fix-xclaim-id-parse
...
Streams: ID of xclaim command should start from the sixth argument.
2018-08-03 13:45:27 +02:00
shenlongxing
fe56c67405
Fix stream command paras
2018-08-03 19:01:15 +08:00
zhaozhao.zz
9042d1c249
Streams: propagate specified MAXLEN instead of approximated
...
Slaves and rebooting redis may have different radix tree struct,
by different stream* config options. So propagating approximated
MAXLEN to AOF/slaves may lead to date inconsistency.
2018-08-01 10:34:12 +08:00
zhaozhao.zz
14d6318b32
Streams: reset approx_maxlen in every maxlen loop
2018-08-01 10:31:27 +08:00
zhaozhao.zz
da6b7516f1
Streams: XTRIM will return an error if MAXLEN with a count < 0
2018-08-01 10:31:27 +08:00
zhaozhao.zz
20c6a7fe2c
Streams: propagate original MAXLEN argument in XADD context
...
If we rewrite the MAXLEN argument as zero when no trimming
was performed, date between master and slave and aof will
be inconsistent, because `xtrim maxlen 0` means delete all
entries in stream.
2018-08-01 10:31:27 +08:00
antirez
2f2987ffc5
Streams IDs parsing refactoring.
...
Related to #5184 .
2018-07-31 18:08:52 +02:00
dejun.xdj
6491717c88
Streams: rearrange the usage of '-' and '+' IDs in stream commands.
2018-07-30 21:33:01 +08:00
dejun.xdj
d6f5ec6f09
Streams: add mmid_supp argument in streamParseIDOrReply().
...
If 'mmid_supp' is set to 0, "-" and "+" will be
treated as an invalid ID.
2018-07-30 21:32:07 +08:00
Salvatore Sanfilippo
73cbc33a0a
Merge pull request #5133 from soloestoy/fix-xdel-memory-leak
...
Streams: fix xdel memory leak
2018-07-24 18:57:05 +02:00
zhaozhao.zz
eb0e5fe4e3
Streams: fix xdel memory leak
2018-07-25 00:06:27 +08:00
antirez
8513f31be0
Streams: refactoring of next entry seek in the iterator.
...
After #5161 the code could be made a bit more obvious for newcomers.
2018-07-24 11:07:27 +02:00
zhaozhao.zz
9674ede85a
Streams: skip master fileds only when we are going forward in streamIteratorGetID
2018-07-22 17:52:09 +08:00
dejun.xdj
de5ca516ae
Streams: ID of xclaim command starts from the sixth argument.
2018-07-19 20:48:08 +08:00
antirez
6201f7b4e0
Streams: better error when $ is given with XREADGROUP.
2018-07-17 17:54:10 +02:00
Salvatore Sanfilippo
4bff45c7a6
Merge pull request #5136 from 0xtonyxia/fix-xread-id-parse
...
Fix xreadgroup with '$' ID.
2018-07-17 17:50:31 +02:00
dejun.xdj
846cf12ae5
Streams: remove meaningless if condition.
...
It's already checked if xreadgroup is set and groupname is NULL.
2018-07-17 18:23:47 +08:00
dejun.xdj
6501b6bb6d
Streams: return an error message if using xreadgroup with '$' ID.
...
Redis will always return an empty result when '$' ID is specified
with xreadgroup command, it's meaningless.
2018-07-17 18:19:10 +08:00
Salvatore Sanfilippo
9fbd49bbaf
Merge pull request #5113 from 0xtonyxia/using-compare-func-instead
...
Streams: using streamCompareID() instead of direct compare.
2018-07-16 18:34:35 +02:00
zhaozhao.zz
73306c6fed
Streams: correctly propagate xdel if needed
2018-07-16 20:48:07 +08:00
antirez
103c5a1a3c
Add a few comments to streamIteratorRemoveEntry().
2018-07-16 12:41:55 +02:00
Salvatore Sanfilippo
a317f55d25
Merge pull request #5131 from soloestoy/optimize-xdel
...
Streams: free lp if all elements are deleted
2018-07-16 12:39:38 +02:00
antirez
185e0d9cd8
Modify XINFO field from last-id to last-generated-id.
...
Related to #5129 .
2018-07-16 12:25:26 +02:00
zhaozhao.zz
c9324f81a2
Streams: free lp if all elements are deleted
2018-07-16 15:57:41 +08:00
zhaozhao.zz
b4ba5ac840
Streams: show last id for streams and groups
2018-07-16 13:24:54 +08:00
dejun.xdj
0484dbcf68
Streams: using streamCompareID() instead of direct compare.
2018-07-14 20:34:06 +08:00
antirez
b6260a0270
Streams: when re-delivering because of SETID, reset deliveries counter.
...
We don't want to increment the deliveries here, because the sysadmin
reset the consumer group so the desire is likely to restart processing,
and having the PEL polluted with old information is not useful but
probably confusing.
Related to #5111 .
2018-07-12 13:19:39 +02:00
antirez
a7c180e559
Simplify duplicated NACK #5112 fix.
...
We don't really need to distinguish between the case the consumer is the
same or is a different one.
2018-07-12 13:15:54 +02:00
Salvatore Sanfilippo
bf4def0fbc
Merge pull request #5112 from 0xtonyxia/fix-xreadgroup-crash-after-setid
...
Streams: fix xreadgroup crash after xgroup SETID is sent.
2018-07-12 13:04:22 +02:00
antirez
0420c3276f
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-07-10 12:06:44 +02:00
antirez
a8c1bb310e
Streams: fix new XREADGROUP sync logic.
2018-07-10 12:02:03 +02:00
antirez
1a02b5f6ee
Streams: make blocking for > a truly special case.
...
To simplify the semantics of blocking for a group, this commit changes
the implementation to better match the description we provide of
conusmer groups: blocking for > will make the consumer waiting for new
elements in the group. However blocking for any other ID will always
serve the local history of the consumer.
However it must be noted that the > ID is actually an alias for the
special ID ms/seq of UINT64_MAX,UINT64_MAX.
2018-07-10 11:34:17 +02:00
dejun.xdj
3f8a3efe5f
Streams: fix xreadgroup crash after xgroup SETID is sent.
...
For issue #5111 .
2018-07-10 16:26:13 +08:00
dejun.xdj
61f12973f7
Bugfix: PEL is incorrect when consumer is blocked using xreadgroup with NOACK option.
...
Save NOACK option into client.blockingState structure.
2018-07-09 13:40:29 +02:00
Jack Drogon
93238575f7
Fix typo
2018-07-03 18:19:46 +02:00
antirez
2edcafb35d
addReplySubSyntaxError() renamed to addReplySubcommandSyntaxError().
2018-07-02 18:49:34 +02:00
Salvatore Sanfilippo
bc6a004588
Merge pull request #4998 from itamarhaber/module_command_help
...
Module command help
2018-07-02 18:46:56 +02:00
Mustafa Paltun
010dc172d4
Update t_stream.c
2018-06-27 16:35:30 +03:00
antirez
62f9ac6f43
Streams: Change XADD MAXLEN handling of values <= 0.
...
Now a MAXLEN of 0 really does what it means: it will create a zero
entries stream. This is useful in order to make sure that the behavior
is identical to XTRIM, that must be able to reduce the stream to zero
elements when MAXLEN is given.
Also now MAXLEN with a count < 0 will return an error.
2018-06-18 10:05:21 +02:00
antirez
79a1c19ac2
XADD MAXLEN should return an error for values < 0.
2018-06-17 10:44:01 +02:00
antirez
6b8a24a665
Streams: generate a few additional events.
...
Currently it does not look it's sensible to generate events for streams
consumer groups modification, being them metadata, however at least for
key-level events, like the creation or removal of a consumer group, I
added a few events here and there. Later we can evaluate if it makes
sense to add more. From the POV instead of WAIT (in Redis transaciton)
and signaling the key as modified, it looks like that the transaction
should not fail when a stream is modified, so no calls are made in
consumer groups related functions to signalModifiedKey().
2018-06-12 18:11:15 +02:00
antirez
4774d61691
Streams: improve type correctness in t_stream.c.
2018-06-12 14:12:53 +02:00
Itamar Haber
6b675b9525
Applies addReplySubSyntaxError to stream commands
2018-06-12 14:52:50 +03:00
antirez
bcc42028c1
Fix XGROUP help missing space.
2018-06-12 13:20:46 +02:00
antirez
7cc1312789
Streams: fix backward iteration when entry is not flagged SAMEFIELD.
...
See issue #5006 . The comment in the code was also wrong and
was rectified as well.
2018-06-12 10:22:49 +02:00
Salvatore Sanfilippo
82661ba329
Merge pull request #5007 from leonchen83/patch-2
...
fix typo issue #5005
2018-06-12 09:28:26 +02:00
antirez
923e63e5ec
Streams: increment dirty counter for XGROUP SETID/DESTROY.
...
See issue #5005 comments.
2018-06-12 09:27:40 +02:00
Baoyi Chen
fac3e8aab5
fix typo
...
fix [#5005 ](https://github.com/antirez/redis/issues/5005 )
2018-06-12 08:52:18 +08:00
Salvatore Sanfilippo
5db262b623
Merge pull request #5002 from soloestoy/streams-read-or-write
...
Streams: lookupKey[Read->Write]OrReply in xdel and xtrim
2018-06-11 16:33:10 +02:00
Salvatore Sanfilippo
295db9ee0a
Merge pull request #5003 from soloestoy/streams-checkType
...
Streams: checkType for xread & xinfo
2018-06-11 16:32:00 +02:00
zhaozhao.zz
b8913ce721
Streams: checkType for xread & xinfo
2018-06-11 01:17:52 +08:00
zhaozhao.zz
cc81c6f1d3
Streams: lookupKey[Read->Write]OrReply in xdel and xtrim
2018-06-11 00:14:17 +08:00
michael-grunder
c04082cf13
Abort in XGROUP if the key is not a stream
2018-06-10 08:55:58 -07:00
Salvatore Sanfilippo
66c6218a3c
Merge pull request #4977 from michael-grunder/xpending-early-return
...
Return early in XPENDING if sent a nonexistent consumer group.
2018-06-07 18:49:09 +02:00
antirez
a7dbe37d53
Typo: entires -> entries in several places.
2018-06-07 14:36:56 +02:00
antirez
6d34ff3645
Streams: max node limits only checked if non zero.
2018-06-07 14:30:25 +02:00
antirez
19a438e2c0
Streams: use non static macro node limits.
...
Also add the concept of size/items limit, instead of just having as
limit the number of bytes.
2018-06-07 14:24:49 +02:00
antirez
b61416bdf4
Fix streamIteratorRemoveEntry() to update elements count.
...
Close #4989 .
2018-06-06 11:40:22 +02:00
antirez
9e25f3e1de
Remove XINFO <key> special form.
...
As observed by Michael Grunder this usage while practical is
inconsistent because for instance it does not work against a key called
HELP. Removed.
2018-06-05 16:34:34 +02:00
antirez
36b392a0b2
XGROUP SETID implemented + consumer groups core fixes.
...
Now that we have SETID, the inetrnals of consumer groups should be able
to handle the case of the same message delivered multiple times just
as a side effect of calling XREADGROUP. Normally this should never
happen but if the admin manually "XGROUP SETID mykey mygroup 0",
messages will get re-delivered to clients waiting for the ">" special
ID. The consumer groups internals were not able to handle the case of a
message re-delivered in this circumstances that was already assigned to
another owner.
2018-06-04 17:28:03 +02:00
antirez
7c6f1be5df
XGROUP DESTROY implemented.
2018-06-04 12:58:26 +02:00
michael-grunder
1749fe7a26
Return early in XPENDING if sent a nonexistent consumer group.
2018-06-02 18:22:20 -07:00
antirez
3d5e2c62e2
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-05-29 12:41:07 +02:00
antirez
6536ce27a4
Streams: fix comments referring to old ID format.
2018-05-25 17:25:19 +02:00
zhaozhao.zz
c2d7e6cea7
avoid warning in t_stream.c
2018-05-25 22:49:49 +08:00
antirez
fb9c1c3dbd
Simplify XADD ID syntax error code path,.
2018-05-25 16:29:37 +02:00
Salvatore Sanfilippo
a60f553b68
Merge pull request #4832 from 0xtonyxia/fix-xadd-ID-parse
...
Bugfix: xadd command ID parse
2018-05-25 16:27:21 +02:00
antirez
95fa564add
Avoid warning by explicitly initializing var to NULL.
2018-05-25 16:19:14 +02:00
antirez
b2b4e186a2
Explicitly cast void pointers to char pointers for printf style logging.
2018-05-25 16:15:59 +02:00
Salvatore Sanfilippo
8a200b04c3
Merge pull request #4831 from 0xtonyxia/fix-xadd-arity-check
...
Bugfix: xadd comand <field,value> arity check
2018-05-24 16:07:19 +02:00
antirez
e6b0e8d9ec
Streams: XTRIM command added.
2018-04-19 16:25:29 +02:00
antirez
19ae809458
Streams: XADD, handle signaling of write in different ways.
2018-04-19 16:11:43 +02:00
antirez
aba76320d5
Streams: XDEL command.
2018-04-18 13:12:09 +02:00
antirez
9c149bf1f1
Streams: higher level "delete by ID" API for streams.
2018-04-17 17:55:56 +02:00
antirez
24ac2b4c74
Streams: iterator entry deletion abilities.
2018-04-17 17:18:00 +02:00
dejun.xdj
b6b00f35ca
Return more accurate message when specified ID is invalid
2018-04-10 17:11:10 +08:00
dejun.xdj
3c20b3fc24
Bugfix: xadd command ID parse
...
strictly check the string to be converted,
strtoull() in libc may not set errno to EINVAL when the string contains
invalid digits.
2018-04-10 17:05:48 +08:00
dejun.xdj
07125b8d22
Bugfix: xadd comand <field,value> arity check
...
missing parenthesis causes wrong arithmetic priority.
2018-04-10 16:36:05 +08:00
charsyam
71c7477fd4
fix memory leak for streamPropagateXCLAIM
2018-03-21 17:41:59 +09:00
antirez
233da29f4d
CG: propagate XACK by incrementing server.dirty.
...
This should be more than enough, even if in case of partial IDs that are
not found, we send all the IDs to the slave/AOF, but this is definitely
a corner case without bad effects if not some wasted space.
2018-03-20 17:53:45 +01:00
antirez
5577130451
CG: Make XINFO Great Again (and more Redis-ish).
...
With XINFO out of the blue I invented a new syntax for commands never
used in Redis in the past... Let's fix it and make it
Great Again!!11one (TM)
2018-03-20 11:52:42 +01:00
antirez
2ba9a57c9a
CG: Add JUSTID to XCLAIM propagation to reduce CPU usage.
2018-03-20 11:25:49 +01:00
antirez
ad716e29c0
CG: Fix propagate() arg count in streamPropagateXCLAIM().
2018-03-20 11:13:41 +01:00
antirez
3cae5f0321
CG: XGROUP CREATE/DELCONUSMER replication.
2018-03-20 11:07:01 +01:00
antirez
0b58ad301e
CG: Replication WIP 1: XREADGROUP and XCLAIM propagated as XCLAIM.
2018-03-19 18:02:19 +01:00
antirez
6614361615
CG: XINFO STREAM.
2018-03-15 12:54:10 +01:00
antirez
d7d8cd0b2f
CG: XINFO GROUPS + output format changes.
...
XINFO is mainly an observability command that will be used more by
humans than computers, and even when used by computers it will be a very
low traffic command. For this reason the format was changed in order to
have field names. They'll consume some bandwidth and CPU cycles, but in
this context this is much better than having to understand what the
numbers in the output array are.
2018-03-15 12:54:10 +01:00
antirez
0cf6b1e3ae
CG: XINFO CONSUMERS implemented.
2018-03-15 12:54:10 +01:00
antirez
67eeeb0b10
Streams: fix XREAD missing check for NULL object.
2018-03-15 12:54:10 +01:00
antirez
8d8755c7b5
CG: throw an error if XREADGROUP is used without GROUP.
2018-03-15 12:54:10 +01:00
antirez
d4f81ebdba
CG: XGROUP DELCONSUMER implemented.
2018-03-15 12:54:10 +01:00
antirez
9b423ae237
CG: remove stale comment. XREADGROUP is now implemented.
2018-03-15 12:54:10 +01:00
antirez
e6d434c167
CG: implement RETRYCOUNT in XCLAIM.
2018-03-15 12:54:10 +01:00
antirez
34614a1508
CG: NACK created by XCLAIM FORCE must be set in global PEL.
2018-03-15 12:54:10 +01:00
antirez
596264aee9
CG: implement XCLAIM FORCE option.
2018-03-15 12:54:10 +01:00
antirez
b26f03bd69
CG: XCLAIM now updates the idle time of the message.
2018-03-15 12:54:10 +01:00
antirez
8727b4845b
CG: XCLAIM, use minidle and fix array len.
2018-03-15 12:54:10 +01:00
antirez
09e3b3b975
CG: remove unused argument from streamReplyWithRangeFromConsumerPEL().
2018-03-15 12:54:10 +01:00
antirez
267f7f2c97
Streams: fix error description for XADD when specified ID is small.
2018-03-15 12:54:10 +01:00
antirez
0a6780e560
CG: XCLAIM initial draft.
2018-03-15 12:54:10 +01:00
antirez
c9d86c2b16
CG: More specific duplicated group error.
2018-03-15 12:54:10 +01:00
antirez
f4e1a4de25
CG: RDB loading first implementation.
2018-03-15 12:54:10 +01:00
antirez
e76fb4ab25
CG: XPENDING should not create consumers and obey to count.
2018-03-15 12:54:10 +01:00
antirez
f3708af7f9
CG: XPENDING with start/stop/count variant implemented.
2018-03-15 12:54:10 +01:00
antirez
1bc31666da
CG: XPENDING without start/stop variant implemented.
2018-03-15 12:54:10 +01:00
antirez
b65fe09bb8
CG: Now XREADGROUP + blocking operations work.
2018-03-15 12:54:10 +01:00
antirez
5ad29325fe
CG: XACK should return zero when nothing is processed.
2018-03-15 12:54:10 +01:00
antirez
388c69fe4e
CG: XACK implementation.
2018-03-15 12:54:10 +01:00
antirez
5bbd117c29
CG: XREADGROUP can fetch data from the consumer PEL.
2018-03-15 12:54:10 +01:00
antirez
aa808394f6
CG: first draft of streamReplyWithRangeFromConsumerPEL().
2018-03-15 12:54:10 +01:00
antirez
bbec4569a5
CG: Fix order of calls in streamReplyWithRange().
...
We need to check if we are going to serve the request via the PEL before
inserting a deferred array len in the client output buffer.
2018-03-15 12:54:10 +01:00
antirez
41809fd969
CG: creation of NACK entries in PELs.
2018-03-15 12:54:10 +01:00
antirez
1ffb6723f5
CG: fix XREADGROUP ">" special ID parsing due to missing "continue".
2018-03-15 12:54:10 +01:00
antirez
6c0af37b6e
CG: streamCompareID() + group last_id updating.
2018-03-15 12:54:10 +01:00
antirez
86fe8fde20
CG: consumer lookup + initial streamReplyWithRange() work to supprot CG.
2018-03-15 12:54:10 +01:00
antirez
ccdae09046
CG: add & populate group+consumer in the blocking state.
2018-03-15 12:54:10 +01:00