summaryrefslogtreecommitdiff
path: root/src/commands
diff options
context:
space:
mode:
authorItamar Haber <itamar@redis.com>2022-04-06 09:33:33 +0300
committerGitHub <noreply@github.com>2022-04-06 09:33:33 +0300
commit3e09a8c09770dfbe5c8a1c3d2ebc4599448ba7c4 (patch)
tree8ecd86c412569a711be16230978142c87cad5c63 /src/commands
parentf110de4b239d23b8436fdc742a557103c5852aad (diff)
downloadredis-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.json158
-rw-r--r--src/commands/bitfield_ro.json1
-rw-r--r--src/commands/geosearch.json154
-rw-r--r--src/commands/geosearchstore.json154
-rw-r--r--src/commands/migrate.json40
-rw-r--r--src/commands/module-loadex.json1
-rw-r--r--src/commands/set.json50
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"
}
]
}