diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:40:54 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:40:54 +0000 |
commit | 317c0644ccf108aa23ef3fd8358bd66c2840bfc0 (patch) | |
tree | c417b3d25c86b775989cb5ac042f37611b626c8a /src/commands/sort.json | |
parent | Initial commit. (diff) | |
download | redis-upstream/5%7.2.4.tar.xz redis-upstream/5%7.2.4.zip |
Adding upstream version 5:7.2.4.upstream/5%7.2.4
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/commands/sort.json')
-rw-r--r-- | src/commands/sort.json | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/src/commands/sort.json b/src/commands/sort.json new file mode 100644 index 0000000..d5f6511 --- /dev/null +++ b/src/commands/sort.json @@ -0,0 +1,162 @@ +{ + "SORT": { + "summary": "Sorts the elements in a list, a set, or a sorted set, optionally storing the result.", + "complexity": "O(N+M*log(M)) where N is the number of elements in the list or set to sort, and M the number of returned elements. When the elements are not sorted, complexity is O(N).", + "group": "generic", + "since": "1.0.0", + "arity": -2, + "function": "sortCommand", + "get_keys_function": "sortGetKeys", + "command_flags": [ + "WRITE", + "DENYOOM" + ], + "acl_categories": [ + "SET", + "SORTEDSET", + "LIST", + "DANGEROUS" + ], + "key_specs": [ + { + "flags": [ + "RO", + "ACCESS" + ], + "begin_search": { + "index": { + "pos": 1 + } + }, + "find_keys": { + "range": { + "lastkey": 0, + "step": 1, + "limit": 0 + } + } + }, + { + "notes": "For the optional BY/GET keyword. It is marked 'unknown' because the key names derive from the content of the key we sort", + "flags": [ + "RO", + "ACCESS" + ], + "begin_search": { + "unknown": null + }, + "find_keys": { + "unknown": null + } + }, + { + "notes": "For the optional STORE keyword. It is marked 'unknown' because the keyword can appear anywhere in the argument array", + "flags": [ + "OW", + "UPDATE" + ], + "begin_search": { + "unknown": null + }, + "find_keys": { + "unknown": null + } + } + ], + "arguments": [ + { + "name": "key", + "type": "key", + "key_spec_index": 0 + }, + { + "token": "BY", + "name": "by-pattern", + "display": "pattern", + "type": "pattern", + "key_spec_index": 1, + "optional": true + }, + { + "token": "LIMIT", + "name": "limit", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "offset", + "type": "integer" + }, + { + "name": "count", + "type": "integer" + } + ] + }, + { + "token": "GET", + "name": "get-pattern", + "display": "pattern", + "key_spec_index": 1, + "type": "pattern", + "optional": true, + "multiple": true, + "multiple_token": true + }, + { + "name": "order", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "asc", + "type": "pure-token", + "token": "ASC" + }, + { + "name": "desc", + "type": "pure-token", + "token": "DESC" + } + ] + }, + { + "name": "sorting", + "token": "ALPHA", + "type": "pure-token", + "optional": true + }, + { + "token": "STORE", + "name": "destination", + "type": "key", + "key_spec_index": 2, + "optional": true + } + ], + "reply_schema": { + "oneOf": [ + { + "description": "when the store option is specified the command returns the number of sorted elements in the destination list", + "type": "integer", + "minimum": 0 + }, + { + "description": "when not passing the store option the command returns a list of sorted elements", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "description": "GET option is specified, but no object was found", + "type": "null" + } + ] + } + } + ] + } + } +} |