* fix: ZINTERSTORE bug
When a shard only contains the dest key, it returned an empty map which causes the resulting intersection to be empty
* chore(vscode): Add gdb launch setting
* feat: Implement ZINTERCARD
Initial implementation without LIMIT
* feat: Implement limit for ZINTERCARD
* feat: Handle sets in ZINTER* commands
1. Load flow reorganized - most of the logic is now in InferLoadFile function.
S3 read is not yet supported.
2. Write path is implemented. Specifically, you can use undocumented (by design) option to save like:
`SAVE rdb s3://bucket/path/file`.
3. When using `--dir=s3://bucket/path/` it also saves into s3 on shutdown.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
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>