summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/t_set.c2
-rw-r--r--tests/unit/type/set.tcl1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/t_set.c b/src/t_set.c
index c530d6923..64d43f7f2 100644
--- a/src/t_set.c
+++ b/src/t_set.c
@@ -321,7 +321,7 @@ void smoveCommand(redisClient *c) {
/* If srcset and dstset are equal, SMOVE is a no-op */
if (srcset == dstset) {
- addReply(c,shared.cone);
+ addReply(c,setTypeIsMember(srcset,ele) ? shared.cone : shared.czero);
return;
}
diff --git a/tests/unit/type/set.tcl b/tests/unit/type/set.tcl
index 162de0af7..f294c01f4 100644
--- a/tests/unit/type/set.tcl
+++ b/tests/unit/type/set.tcl
@@ -450,6 +450,7 @@ start_server {
test "SMOVE non existing key" {
setup_move
assert_equal 0 [r smove myset1 myset2 foo]
+ assert_equal 0 [r smove myset1 myset1 foo]
assert_equal {1 a b} [lsort [r smembers myset1]]
assert_equal {2 3 4} [lsort [r smembers myset2]]
}