redict/src
Angus Pearson bf963253ec Implement SCAN cursor [TYPE type] modifier suggested in issue #6107.
Add tests to check basic functionality of this optional keyword, and also tested with
a module (redisgraph). Checked quickly with valgrind, no issues.

Copies name the type name canonicalisation code from `typeCommand`, perhaps this would
be better factored out to prevent the two diverging and both needing to be edited to
add new `OBJ_*` types, but this is a little fiddly with C strings.

The [redis-doc](https://github.com/antirez/redis-doc/blob/master/commands.json) repo
will need to be updated with this new arg if accepted.

A quirk to be aware of here is that the GEO commands are backed by zsets not their own
type, so they're not distinguishable from other zsets.

Additionally, for sparse types this has the same behaviour as `MATCH` in that it may
return many empty results before giving something, even for large `COUNT`s.
2019-05-22 16:39:04 +01:00
..
modules Add runtest-moduleapi with commandfilter coverage. 2019-03-24 12:03:03 +02:00
.gitignore Ignore gcov/lcov artifacts 2012-04-13 17:52:33 -07:00
acl.c ACL: Fix memory leak in ACLResetSubcommandsForCommand(). 2019-04-08 18:08:37 +02:00
adlist.c adlist: fix listJoin() in the case the second list is empty. 2017-11-28 18:25:14 +01:00
adlist.h Modules TSC: Handling of RM_Reply* functions. 2017-05-02 15:05:39 +02:00
ae_epoll.c various cleanups and minor fixes 2016-04-25 16:49:57 +03:00
ae_evport.c ae.c event loop: API to resize the fd set size on the run. 2013-06-28 16:39:49 +02:00
ae_kqueue.c No more trailing spaces in Redis source code. 2014-06-26 18:48:40 +02:00
ae_select.c Include 'fd_set' type name 2016-06-07 16:46:00 -04:00
ae.c Update ae.c 2019-01-06 15:01:25 +08:00
ae.h Fix ae.c when a timer finalizerProc adds an event. 2018-03-28 14:11:04 +02:00
anet.c fix missed call on freeaddrinfo 2018-03-21 15:34:13 +08:00
anet.h Fix ae.c to avoid timers infinite loop. 2016-04-04 08:50:58 +02:00
aof.c aof: enhance AOF_FSYNC_EVERYSEC, more details in #5985 2019-04-29 14:38:28 +08:00
asciilogo.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
atomicvar.h several typos fixed, optimize MSETNX to avoid unnecessary loop 2018-10-16 15:48:03 +08:00
bio.c Fix typo in design comment of bio.c. 2018-10-05 18:29:23 +02:00
bio.h Threaded lazyfree WIP #1. 2015-10-01 13:02:25 +02:00
bitops.c Fix memleak in bitfieldCommand 2019-04-09 09:24:22 +08:00
blocked.c Merge pull request #2774 from rouzier/blocking-list-commands-support-milliseconds-floating 2019-03-12 18:10:28 +01:00
childinfo.c Clear child data when opening the pipes. 2016-09-19 14:11:17 +02:00
cluster.c Add RedisModule_GetKeyNameFromIO(). 2019-03-15 10:23:27 +02:00
cluster.h Module cluster flags: add hooks for NO_REDIRECTION flag. 2018-09-19 11:31:22 +02:00
config.c fix memory leak when rewrite config file 2019-05-07 15:59:16 +08:00
config.h OpenBSD support. 2018-11-25 08:10:26 +00:00
crc16_slottable.h Added basic support for clusters to redis-benchmark. 2019-03-01 17:53:14 +01:00
crc16.c RDMF (Redis/Disque merge friendlyness) refactoring WIP 1. 2015-07-26 15:17:18 +02:00
crc64.c Allow all code tests to run using Redis args 2014-12-23 09:31:03 -05:00
crc64.h Allow all code tests to run using Redis args 2014-12-23 09:31:03 -05:00
db.c Implement SCAN cursor [TYPE type] modifier suggested in issue #6107. 2019-05-22 16:39:04 +01:00
debug.c Don't assume the __x86_64__ pointer size to avoid warnings on x32. 2019-02-11 17:12:27 +01:00
debugmacro.h Use the standard predefined identifier __func__ (since C99) 2016-08-04 15:12:12 +08:00
defrag.c Fix uint64_t hash value in active defrag 2019-05-08 16:29:16 +08:00
dict.c Set dictGetFairRandomKey() samples to 20 for final version. 2019-02-19 17:27:42 +01:00
dict.h Better distribution for set get-random-element operations. 2019-02-18 18:27:18 +01:00
endianconv.c Allow all code tests to run using Redis args 2014-12-23 09:31:03 -05:00
endianconv.h Fix typo 2018-07-03 18:19:46 +02:00
evict.c Threaded IO: read side WIP. 2019-05-06 18:02:51 +02:00
expire.c fix typo 2018-06-21 22:08:09 +08:00
fmacros.h Silence _BSD_SOURCE warnings in glibc 2.20 and forward 2014-12-05 12:41:59 +11:00
geo.c Fix mismatching keyspace notification classes 2019-03-14 12:11:16 +01:00
geo.h RDMF (Redis/Disque merge friendlyness) refactoring WIP 1. 2015-07-26 15:17:18 +02:00
geohash_helper.c Fix GEORADIUS edge case with huge radius. 2017-07-03 19:38:31 +02:00
geohash_helper.h Fix definition of M_PI in geohash_helper.c. 2016-07-06 16:31:11 +02:00
geohash.c Use geohash limit defines in constraint check 2018-09-02 00:06:20 -07:00
geohash.h Multiple GEORADIUS bugs fixed. 2016-07-27 11:34:25 +02:00
gopher.c Gopher: don't add the Lastline. 2019-02-24 21:38:15 +01:00
help.h Update help.h for redis-cli. 2018-10-17 12:57:21 +02:00
hyperloglog.c HyperLogLog: fix comment in hllCount(). 2019-03-16 09:15:57 +01:00
intset.c several typos fixed, optimize MSETNX to avoid unnecessary loop 2018-10-16 15:48:03 +08:00
intset.h Use const in Redis Module API where possible. 2016-06-20 23:08:06 +03:00
latency.c RESP3: latency.c updated. 2019-01-09 17:00:29 +01:00
latency.h Separate latency monitoring of eviction loop and eviction DELs. 2015-02-11 10:52:27 +01:00
lazyfree.c refactor dbOverwrite to make lazyfree work 2018-07-31 12:07:57 +08:00
listpack_malloc.h Streams: change listpack allocator to zmalloc. 2017-12-01 10:24:24 +01:00
listpack.c Listpack: optionally force reallocation on inserts. 2018-10-02 19:37:36 +02:00
listpack.h Streams: 12 commits squashed into the initial Streams implementation. 2017-12-01 10:24:24 +01:00
localtime.c update leap year comment 2018-07-13 09:46:30 -06:00
lolwut5.c LOLWUT: capitalize Nees. 2018-10-11 13:00:55 +02:00
lolwut.c LOLWUT: split the command from version-specific implementations. 2018-09-14 12:35:59 +02:00
lzf_c.c Upgrade LZF to 3.6 (2011) from 3.5 (2009) 2015-01-02 11:16:10 -05:00
lzf_d.c Try to avoid issues with GCC pragmas and older compilers. 2018-09-28 13:00:44 +02:00
lzf.h No more trailing spaces in Redis source code. 2014-06-26 18:48:40 +02:00
lzfP.h Fix undefined behavior constant defined. 2017-11-19 16:23:42 +00:00
Makefile Makefile: 1TD -> STD 2019-05-07 13:35:27 +08:00
memtest.c Hopefully better memory test on crash. 2015-12-16 17:41:22 +01:00
mkreleasehdr.sh Use SOURCE_DATE_EPOCH over unreproducible uname + date calls. 2016-04-29 16:45:53 +01:00
module.c Preserve client->id for blocked clients. 2019-05-05 20:32:53 +03:00
multi.c RESP3: restore the concept of null array for RESP2 compat. 2019-01-09 17:00:29 +01:00
networking.c Make comment in getClientOutputBufferMemoryUsage() describing the present. 2019-05-13 17:30:06 +02:00
notify.c added special flag for keyspace miss notifications 2019-03-21 11:47:14 +02:00
object.c Fix objectSetLRUOrLFU() when LFU underflows. 2019-03-14 17:06:59 +01:00
pqsort.c No more trailing spaces in Redis source code. 2014-06-26 18:48:40 +02:00
pqsort.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
pubsub.c RESP3: Pubsub messages in new push format if client is in RESP3 mode. 2019-01-09 17:00:30 +01:00
quicklist.c Fix typo 2018-07-03 18:19:46 +02:00
quicklist.h several typos fixed, optimize MSETNX to avoid unnecessary loop 2018-10-16 15:48:03 +08:00
rand.c Use 'void' for zero-argument functions 2014-08-08 10:05:32 +02:00
rand.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
rax_malloc.h Cluster: hash slots tracking using a radix tree. 2017-03-27 16:37:22 +02:00
rax.c Rax: radix tree updated to latest version from antirez/rax. 2018-10-13 14:17:38 +02:00
rax.h Rax: radix tree updated to latest version from antirez/rax. 2018-10-13 14:17:38 +02:00
rdb.c Add RedisModule_GetKeyNameFromIO(). 2019-03-15 10:23:27 +02:00
rdb.h Add RedisModule_GetKeyNameFromIO(). 2019-03-15 10:23:27 +02:00
redis-benchmark.c Merge pull request #6051 from vattezhang/unstable 2019-05-02 09:48:02 +02:00
redis-check-aof.c Enlarge error buffer in redis-check-aof.c to remove compiler warning of output truncation through snprintf format string 2019-05-08 12:13:45 +01:00
redis-check-rdb.c Add RedisModule_GetKeyNameFromIO(). 2019-03-15 10:23:27 +02:00
redis-cli.c Merge pull request #5921 from vattezhang/unstable_temp 2019-03-13 12:18:08 +01:00
redis-trib.rb Redis-trib deprecated: it no longer works and it 2018-07-13 10:51:58 +02:00
redisassert.h Fix typo 2018-07-03 18:19:46 +02:00
redismodule.h Merge pull request #5944 from yossigo/command-filtering 2019-03-22 17:43:49 +01:00
release.c No more trailing spaces in Redis source code. 2014-06-26 18:48:40 +02:00
replication.c Narrow the effects of PR #6029 to the exact state. 2019-05-15 12:16:43 +02:00
rio.c rdb: incremental fsync when redis saves rdb 2018-03-16 00:44:50 +08:00
rio.h fix processing of large bulks (above 2GB) 2017-12-29 12:24:19 +02:00
scripting.c CommandFilter API: Support Lua and RM_call() flows. 2019-03-18 23:06:38 +02:00
sds.c Trim SDS free space of retained module strings 2019-02-12 14:21:21 +01:00
sds.h Merge pull request #3828 from oranagra/sdsnewlen_pr 2018-02-27 04:04:32 -08:00
sdsalloc.h SDS: changes to unify Redis SDS with antirez/sds repo. 2015-07-25 17:25:44 +02:00
sentinel.c fix: fix sentinel command table and new flags format 2019-02-27 21:35:58 +08:00
server.c Merge pull request #6074 from trevor211/fixActiveExpire 2019-05-10 12:39:35 +02:00
server.h Merge pull request #6053 from soloestoy/enhance-aof-fsync-everysec 2019-05-10 18:06:40 +02:00
setproctitle.c DragonFlyBSD little build fix 2018-11-11 18:49:55 +00:00
sha1.c sha1.c: use standard uint32_t. 2015-04-27 12:07:49 +02:00
sha1.h sha1.c: use standard uint32_t. 2015-04-27 12:07:49 +02:00
siphash.c Clean gcc 7.x warnings, redis-cli cluster fix. 2018-06-03 15:54:30 +03:00
slowlog.c RESP3: Use new aggregate reply API in slowlog.c. 2019-01-09 17:00:29 +01:00
slowlog.h Merge pull request #4056 from season89/unstable 2017-06-20 16:55:29 +02:00
solarisfixes.h Check for __sun macro in solarisfixes.h, not in includers. 2015-01-09 11:23:22 +01:00
sort.c change SORT and SPOP to use lookupKeyWrite rather than lookupKeyRead 2019-03-20 17:06:22 +02:00
sparkline.c RDMF (Redis/Disque merge friendlyness) refactoring WIP 1. 2015-07-26 15:17:18 +02:00
sparkline.h LATENCY GRAPH implemented. 2014-07-02 16:31:22 +02:00
stream.h Streams: add streamCompareID() declaration in stream.h. 2018-07-14 15:02:24 +08:00
syncio.c syncWithMaster(): non blocking state machine. 2015-08-06 18:12:20 +02:00
t_hash.c Increase string2ld's buffer size (and fix HINCRBYFLOAT) 2019-01-28 17:58:11 +02:00
t_list.c change the comments there may have a mis type 2019-05-07 14:22:40 +08:00
t_set.c change SORT and SPOP to use lookupKeyWrite rather than lookupKeyRead 2019-03-20 17:06:22 +02:00
t_stream.c Fix start and end key initialize 2019-04-11 12:19:02 -04:00
t_string.c RESP3: most null replies converted. 2019-01-09 17:00:29 +01:00
t_zset.c Fix ZPOP return type when COUNT=0. Related to #5799. 2019-03-14 17:51:20 +01:00
testhelp.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
util.c Increase string2ld's buffer size (and fix HINCRBYFLOAT) 2019-01-28 17:58:11 +02:00
util.h stringmatchlen() fuzz test added. 2018-12-11 13:29:30 +01:00
valgrind.sup more valgrind friendly test 2011-07-06 15:22:00 +02:00
version.h Mark version of unstable branch in an unique way. 2015-09-29 17:30:24 +02:00
ziplist.c Update ziplist.c 2019-05-08 12:53:56 +08:00
ziplist.h DEBUG: new "ziplist" subcommand added. Dumps a ziplist on stdout. 2016-12-16 09:02:50 +01:00
zipmap.c Allow all code tests to run using Redis args 2014-12-23 09:31:03 -05:00
zipmap.h Allow all code tests to run using Redis args 2014-12-23 09:31:03 -05:00
zmalloc.c Alter coding style in #4696 to conform to Redis code base. 2019-03-21 12:18:55 +01:00
zmalloc.h Fix incorrect memory usage accounting in zrealloc 2018-09-30 11:49:03 +02:00