Commit 824ea017 authored by Salvatore Sanfilippo's avatar Salvatore Sanfilippo
Browse files

Merge pull request #321 from mkwiatkowski/ticket227

SORT with STORE removes key if result is empty. This fixes issue #227.
parents 6c294101 a0bf8d0a
......@@ -367,9 +367,14 @@ void sortCommand(redisClient *c) {
}
}
}
if (outputlen) setKey(c->db,storekey,sobj);
if (outputlen) {
setKey(c->db,storekey,sobj);
server.dirty += outputlen;
} else if (dbDelete(c->db,storekey)) {
signalModifiedKey(c->db,storekey);
server.dirty++;
}
decrRefCount(sobj);
server.dirty += outputlen;
addReplyLongLong(c,outputlen);
}
......
......@@ -25,6 +25,16 @@ start_server {tags {"cas"}} {
r exec
} {}
test {EXEC fail on WATCHed key modified by SORT with STORE even if the result is empty} {
r flushdb
r lpush foo bar
r watch foo
r sort emptylist store foo
r multi
r ping
r exec
} {}
test {After successful EXEC key is no longer watched} {
r set x 30
r watch x
......
......@@ -150,6 +150,13 @@ start_server {
r exists zap
} {0}
test "SORT with STORE removes key if result is empty (github issue 227)" {
r flushdb
r lpush foo bar
r sort emptylist store foo
r exists foo
} {0}
tags {"slow"} {
set num 100
set res [create_random_dataset $num lpush]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment