summaryrefslogtreecommitdiff
path: root/src/sort.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sort.c')
-rw-r--r--src/sort.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/sort.c b/src/sort.c
index 95c87cc04..fedf0cf3a 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -248,7 +248,17 @@ void sortCommand(redisClient *c) {
sortby = c->argv[j+1];
/* If the BY pattern does not contain '*', i.e. it is constant,
* we don't need to sort nor to lookup the weight keys. */
- if (strchr(c->argv[j+1]->ptr,'*') == NULL) dontsort = 1;
+ if (strchr(c->argv[j+1]->ptr,'*') == NULL) {
+ dontsort = 1;
+ } else {
+ /* If BY is specified with a real patter, we can't accept
+ * it in cluster mode. */
+ if (server.cluster_enabled) {
+ addReplyError(c,"BY option of SORT denied in Cluster mode.");
+ syntax_error++;
+ break;
+ }
+ }
j++;
} else if (!strcasecmp(c->argv[j]->ptr,"get") && leftargs >= 1) {
if (server.cluster_enabled) {