1. Incorporate StreamAppendItem into c++ codebase and stop using t_stream implementation.
2. Change its signature to accept CmdArgList instead of array of robj*.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Redis supports a MKSTREAM option to dynamically create
a stream for "xgroup create" command if the stream for
the given key doesn't exist. Dragonfly, though instructs
users to use MKSTREAM if a key doesn't exist, doesn't
have the option.
Support MKSTREAM option for "xgroup create" command to
dynamically create a stream for given key, if not already
created.
Signed-off-by: Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com>
Along the way, performs small cleanups in command handling code.
XGROUP HELP is special because it falls out of Dragonfly command taxonomy design,
where a command name determines where its key is located. All other XGROUP subcommands
expect to see XGROUP <subcmd> <key> and this one obviously does not need any key.
I fix it by working around the issue and introduce a dedicated dummy command for this combination.
Fixes#854.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* feat(server): Add support for PFADD and PFCOUNT
This version does not create sparse-encoded HLLs, however it is fully compatible with such ones created by Redis as it converts them to the dense encoding.
Note that PFMERGE is not yet implemented.
* Set small string optimization to be 2^13 instead of 2^15.
This will allow dense-encoded HLL to *not* fit within the small string,
which will make it contiguous in memory, thus GetSlice() will not
allocate.
---------
Signed-off-by: chakaz <chakaz@chakaz>
Co-authored-by: chakaz <chakaz@chakaz>
feat: ignore MULTI/EXEC if the transaction consists of EVAL commands.
Together with `default_lua_config` solves #781.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Disable TCP listening when `--port 0` is passed.
Instead, only unix-socket listening and Admin listening (via TCP) is
enabled.
Fixes#979 and #983.
Signed-off-by: talbii <ido@dragonflydb.io>
fix: remove redundant ToLower call from HSET function
The call was left during big refactoring when we removed command name from the
arguments slice passed to commands.
Fixes#1140
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* test(sentinel_test.py): increase timeout from 10 to 15 seconds in test_failover function
Signed-off-by: ashotland <ari@dragonflydb.io>
---------
Signed-off-by: ashotland <ari@dragonflydb.io>
Currently deployed packages have version in the filename which makes it much harder to fetch
using scripts.
This change fixes the filename and also removes some redundant code.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>