summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2010-10-27 16:37:34 +0200
committerantirez <antirez@gmail.com>2010-10-27 16:37:34 +0200
commitfac62d47e7e7a2da7013da766afeefa52b0df865 (patch)
treeec73cf90a5487e1b8ac4f03f50ee9229bdfce141
parentff29ca1c464e7d79748e840c2b74e26ca8eae144 (diff)
parentf5936fa1c2e0ee4d25ba0c1a9944ebe29a6eee4b (diff)
downloadredis-fac62d47e7e7a2da7013da766afeefa52b0df865.tar.gz
Merge remote branch 'pietern/2.0.0-hmget-fix' into 2.0.0
-rw-r--r--redis.c1
-rw-r--r--tests/unit/type/hash.tcl5
2 files changed, 6 insertions, 0 deletions
diff --git a/redis.c b/redis.c
index ffe7c2b4c..fefaa6bd1 100644
--- a/redis.c
+++ b/redis.c
@@ -6707,6 +6707,7 @@ static void hmgetCommand(redisClient *c) {
o = lookupKeyRead(c->db,c->argv[1]);
if (o != NULL && o->type != REDIS_HASH) {
addReply(c,shared.wrongtypeerr);
+ return;
}
/* Note the check for o != NULL happens inside the loop. This is
diff --git a/tests/unit/type/hash.tcl b/tests/unit/type/hash.tcl
index ef49a27d8..451438dba 100644
--- a/tests/unit/type/hash.tcl
+++ b/tests/unit/type/hash.tcl
@@ -140,6 +140,11 @@ start_server {tags {"hash"}} {
set _ $rv
} {{{} {}} {{} {}} {{} {}}}
+ test {HMGET against wrong type} {
+ r set wrongtype somevalue
+ assert_error "*wrong*" {r hmget wrongtype field1 field2}
+ }
+
test {HMGET - small hash} {
set keys {}
set vals {}