diff options
author | Itamar Haber <itamar@redis.com> | 2022-04-06 09:33:33 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-06 09:33:33 +0300 |
commit | 3e09a8c09770dfbe5c8a1c3d2ebc4599448ba7c4 (patch) | |
tree | 8ecd86c412569a711be16230978142c87cad5c63 /src/commands | |
parent | f110de4b239d23b8436fdc742a557103c5852aad (diff) | |
download | redis-3e09a8c09770dfbe5c8a1c3d2ebc4599448ba7c4.tar.gz |
Fixes commands' syntices (#10534)
Fixes in command argument in json files
* Fixes BITFIELD's syntax ("sub-commands" can be repeated, and OVERFLOW is only valid for SET and INCR)
* Improves readability of SET (reordered)
* Fixes GEOSEARCH and GEOSEARCH_RO syntices (use `oneof` for mutually exclusive group instead of `optional`)
* Fixes MIGRATE syntax (use `oneof` for mutually exclusive group instead of `optional`)
* Fixes MODULE LOADEX syntax (the `CONFIG` token should be repeated too when using multiple configs)
other:
* make generate-command-help.rb accept a path to commands.json, or read it from stdin (e.g. `generate-commands-json.py | generate-command-help.rb -`)
Diffstat (limited to 'src/commands')
-rw-r--r-- | src/commands/bitfield.json | 158 | ||||
-rw-r--r-- | src/commands/bitfield_ro.json | 1 | ||||
-rw-r--r-- | src/commands/geosearch.json | 154 | ||||
-rw-r--r-- | src/commands/geosearchstore.json | 154 | ||||
-rw-r--r-- | src/commands/migrate.json | 40 | ||||
-rw-r--r-- | src/commands/module-loadex.json | 1 | ||||
-rw-r--r-- | src/commands/set.json | 50 |
7 files changed, 299 insertions, 259 deletions
diff --git a/src/commands/bitfield.json b/src/commands/bitfield.json index 1f667ce05..5c6fc6105 100644 --- a/src/commands/bitfield.json +++ b/src/commands/bitfield.json @@ -44,84 +44,100 @@ "key_spec_index": 0 }, { - "token": "GET", - "name": "encoding_offset", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "encoding", - "type": "string" - }, - { - "name": "offset", - "type": "integer" - } - ] - }, - { - "token": "SET", - "name": "encoding_offset_value", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "encoding", - "type": "string" - }, - { - "name": "offset", - "type": "integer" - }, - { - "name": "value", - "type": "integer" - } - ] - }, - { - "token": "INCRBY", - "name": "encoding_offset_increment", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "encoding", - "type": "string" - }, - { - "name": "offset", - "type": "integer" - }, - { - "name": "increment", - "type": "integer" - } - ] - }, - { - "token": "OVERFLOW", - "name": "wrap_sat_fail", + "name": "operation", "type": "oneof", - "optional": true, + "multiple": "true", "arguments": [ { - "name": "wrap", - "type": "pure-token", - "token": "WRAP" - }, - { - "name": "sat", - "type": "pure-token", - "token": "SAT" + "token": "GET", + "name": "encoding_offset", + "type": "block", + "arguments": [ + { + "name": "encoding", + "type": "string" + }, + { + "name": "offset", + "type": "integer" + } + ] }, { - "name": "fail", - "type": "pure-token", - "token": "FAIL" + "name": "write", + "type": "block", + "arguments": [ + { + "token": "OVERFLOW", + "name": "wrap_sat_fail", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "wrap", + "type": "pure-token", + "token": "WRAP" + }, + { + "name": "sat", + "type": "pure-token", + "token": "SAT" + }, + { + "name": "fail", + "type": "pure-token", + "token": "FAIL" + } + ] + }, + { + "name": "write_operation", + "type": "oneof", + "arguments": [ + { + "token": "SET", + "name": "encoding_offset_value", + "type": "block", + "arguments": [ + { + "name": "encoding", + "type": "string" + }, + { + "name": "offset", + "type": "integer" + }, + { + "name": "value", + "type": "integer" + } + ] + }, + { + "token": "INCRBY", + "name": "encoding_offset_increment", + "type": "block", + "arguments": [ + { + "name": "encoding", + "type": "string" + }, + { + "name": "offset", + "type": "integer" + }, + { + "name": "increment", + "type": "integer" + } + ] + } + ] + } + ] } ] } ] } -} +}
\ No newline at end of file diff --git a/src/commands/bitfield_ro.json b/src/commands/bitfield_ro.json index a8ec85c29..951fde0f5 100644 --- a/src/commands/bitfield_ro.json +++ b/src/commands/bitfield_ro.json @@ -43,6 +43,7 @@ "token": "GET", "name": "encoding_offset", "type": "block", + "multiple": "true", "arguments": [ { "name": "encoding", diff --git a/src/commands/geosearch.json b/src/commands/geosearch.json index 9730d214e..a83dcaadb 100644 --- a/src/commands/geosearch.json +++ b/src/commands/geosearch.json @@ -39,102 +39,110 @@ "key_spec_index": 0 }, { - "token": "FROMMEMBER", - "name": "member", - "type": "string", - "optional": true - }, - { - "token": "FROMLONLAT", - "name": "longitude_latitude", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "longitude", - "type": "double" - }, - { - "name": "latitude", - "type": "double" - } - ] - }, - { - "name": "circle", - "type": "block", - "optional": true, + "name": "from", + "type": "oneof", "arguments": [ { - "token": "BYRADIUS", - "name": "radius", - "type": "double" + "token": "FROMMEMBER", + "name": "member", + "type": "string" }, { - "name": "unit", - "type": "oneof", + "token": "FROMLONLAT", + "name": "longitude_latitude", + "type": "block", "arguments": [ { - "name": "m", - "type": "pure-token", - "token": "m" + "name": "longitude", + "type": "double" }, { - "name": "km", - "type": "pure-token", - "token": "km" - }, - { - "name": "ft", - "type": "pure-token", - "token": "ft" - }, - { - "name": "mi", - "type": "pure-token", - "token": "mi" + "name": "latitude", + "type": "double" } ] } ] }, { - "name": "box", - "type": "block", - "optional": true, + "name": "by", + "type": "oneof", "arguments": [ { - "token": "BYBOX", - "name": "width", - "type": "double" - }, - { - "name": "height", - "type": "double" - }, - { - "name": "unit", - "type": "oneof", + "name": "circle", + "type": "block", "arguments": [ { - "name": "m", - "type": "pure-token", - "token": "m" + "token": "BYRADIUS", + "name": "radius", + "type": "double" }, { - "name": "km", - "type": "pure-token", - "token": "km" + "name": "unit", + "type": "oneof", + "arguments": [ + { + "name": "m", + "type": "pure-token", + "token": "m" + }, + { + "name": "km", + "type": "pure-token", + "token": "km" + }, + { + "name": "ft", + "type": "pure-token", + "token": "ft" + }, + { + "name": "mi", + "type": "pure-token", + "token": "mi" + } + ] + } + ] + }, + { + "name": "box", + "type": "block", + "arguments": [ + { + "token": "BYBOX", + "name": "width", + "type": "double" }, { - "name": "ft", - "type": "pure-token", - "token": "ft" + "name": "height", + "type": "double" }, { - "name": "mi", - "type": "pure-token", - "token": "mi" + "name": "unit", + "type": "oneof", + "arguments": [ + { + "name": "m", + "type": "pure-token", + "token": "m" + }, + { + "name": "km", + "type": "pure-token", + "token": "km" + }, + { + "name": "ft", + "type": "pure-token", + "token": "ft" + }, + { + "name": "mi", + "type": "pure-token", + "token": "mi" + } + ] } ] } @@ -195,4 +203,4 @@ } ] } -} +}
\ No newline at end of file diff --git a/src/commands/geosearchstore.json b/src/commands/geosearchstore.json index a44ebfe86..16db5d37e 100644 --- a/src/commands/geosearchstore.json +++ b/src/commands/geosearchstore.json @@ -63,102 +63,110 @@ "key_spec_index": 1 }, { - "token": "FROMMEMBER", - "name": "member", - "type": "string", - "optional": true - }, - { - "token": "FROMLONLAT", - "name": "longitude_latitude", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "longitude", - "type": "double" - }, - { - "name": "latitude", - "type": "double" - } - ] - }, - { - "name": "circle", - "type": "block", - "optional": true, + "name": "from", + "type": "oneof", "arguments": [ { - "token": "BYRADIUS", - "name": "radius", - "type": "double" + "token": "FROMMEMBER", + "name": "member", + "type": "string" }, { - "name": "unit", - "type": "oneof", + "token": "FROMLONLAT", + "name": "longitude_latitude", + "type": "block", "arguments": [ { - "name": "m", - "type": "pure-token", - "token": "m" + "name": "longitude", + "type": "double" }, { - "name": "km", - "type": "pure-token", - "token": "km" - }, - { - "name": "ft", - "type": "pure-token", - "token": "ft" - }, - { - "name": "mi", - "type": "pure-token", - "token": "mi" + "name": "latitude", + "type": "double" } ] } ] }, { - "name": "box", - "type": "block", - "optional": true, + "name": "by", + "type": "oneof", "arguments": [ { - "token": "BYBOX", - "name": "width", - "type": "double" - }, - { - "name": "height", - "type": "double" - }, - { - "name": "unit", - "type": "oneof", + "name": "circle", + "type": "block", "arguments": [ { - "name": "m", - "type": "pure-token", - "token": "m" + "token": "BYRADIUS", + "name": "radius", + "type": "double" }, { - "name": "km", - "type": "pure-token", - "token": "km" + "name": "unit", + "type": "oneof", + "arguments": [ + { + "name": "m", + "type": "pure-token", + "token": "m" + }, + { + "name": "km", + "type": "pure-token", + "token": "km" + }, + { + "name": "ft", + "type": "pure-token", + "token": "ft" + }, + { + "name": "mi", + "type": "pure-token", + "token": "mi" + } + ] + } + ] + }, + { + "name": "box", + "type": "block", + "arguments": [ + { + "token": "BYBOX", + "name": "width", + "type": "double" }, { - "name": "ft", - "type": "pure-token", - "token": "ft" + "name": "height", + "type": "double" }, { - "name": "mi", - "type": "pure-token", - "token": "mi" + "name": "unit", + "type": "oneof", + "arguments": [ + { + "name": "m", + "type": "pure-token", + "token": "m" + }, + { + "name": "km", + "type": "pure-token", + "token": "km" + }, + { + "name": "ft", + "type": "pure-token", + "token": "ft" + }, + { + "name": "mi", + "type": "pure-token", + "token": "mi" + } + ] } ] } @@ -207,4 +215,4 @@ } ] } -} +}
\ No newline at end of file diff --git a/src/commands/migrate.json b/src/commands/migrate.json index d07fe4b15..b9a52aa69 100644 --- a/src/commands/migrate.json +++ b/src/commands/migrate.json @@ -125,27 +125,33 @@ "since": "3.0.0" }, { - "token": "AUTH", - "name": "password", - "type": "string", - "optional": true, - "since": "4.0.7" - - }, - { - "token": "AUTH2", - "name": "username_password", - "type": "block", + "name": "authentication", + "type": "oneof", "optional": true, - "since": "6.0.0", "arguments": [ { - "name": "username", - "type": "string" + "token": "AUTH", + "name": "password", + "type": "string", + "optional": true, + "since": "4.0.7" }, { - "name": "password", - "type": "string" + "token": "AUTH2", + "name": "username_password", + "type": "block", + "optional": true, + "since": "6.0.0", + "arguments": [ + { + "name": "username", + "type": "string" + }, + { + "name": "password", + "type": "string" + } + ] } ] }, @@ -160,4 +166,4 @@ } ] } -} +}
\ No newline at end of file diff --git a/src/commands/module-loadex.json b/src/commands/module-loadex.json index e772cbfe4..97e8f2b58 100644 --- a/src/commands/module-loadex.json +++ b/src/commands/module-loadex.json @@ -23,6 +23,7 @@ "token": "CONFIG", "type": "block", "multiple": true, + "multiple_token": true, "optional": true, "arguments": [ { diff --git a/src/commands/set.json b/src/commands/set.json index 267ab311a..688d534d7 100644 --- a/src/commands/set.json +++ b/src/commands/set.json @@ -66,6 +66,31 @@ "type": "string" }, { + "name": "condition", + "type": "oneof", + "optional": true, + "since": "2.6.12", + "arguments": [ + { + "name": "nx", + "type": "pure-token", + "token": "NX" + }, + { + "name": "xx", + "type": "pure-token", + "token": "XX" + } + ] + }, + { + "name": "get", + "token": "GET", + "type": "pure-token", + "optional": true, + "since": "6.2.0" + }, + { "name": "expiration", "type": "oneof", "optional": true, @@ -101,31 +126,6 @@ "since": "6.0.0" } ] - }, - { - "name": "condition", - "type": "oneof", - "optional": true, - "since": "2.6.12", - "arguments": [ - { - "name": "nx", - "type": "pure-token", - "token": "NX" - }, - { - "name": "xx", - "type": "pure-token", - "token": "XX" - } - ] - }, - { - "name": "get", - "token": "GET", - "type": "pure-token", - "optional": true, - "since": "6.2.0" } ] } |