Skip to content

Commit

Permalink
Revert "hmset throws/errors out on non-string values. fixes redis#218"
Browse files Browse the repository at this point in the history
Reverting because this was a documentation problem, not a problem with
the code. Performance-wise, this is faster than the approach in redis#345, though
it may cause users more trouble. This is okay, if someone opens an issue we
can point them to the docs.

This reverts commit b60e001.

Conflicts:

	index.js
	test.js
  • Loading branch information
DTrejo committed Feb 24, 2013
1 parent a02b0f5 commit 405011b
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 27 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ Output:
Multiple values in a hash can be set by supplying an object:

client.HMSET(key2, {
"0123456789": "abcdefghij", // NOTE: the key and value must both be strings
"0123456789": "abcdefghij", // NOTE: key and value will be coerced to strings
"some manner of key": "a type of value"
});

Expand Down
8 changes: 0 additions & 8 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -957,14 +957,6 @@ RedisClient.prototype.hmset = function (args, callback) {
for (i = 0, il = tmp_keys.length; i < il ; i++) {
key = tmp_keys[i];
tmp_args.push(key);
if (typeof args[1][key] !== "string") {
var err = new Error("hmset expected value to be a string", key, ":", args[1][key]);
if (callback) {
return callback(err);
} else {
throw err;
}
}
tmp_args.push(args[1][key]);
}
args = tmp_args;
Expand Down
18 changes: 0 additions & 18 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1616,24 +1616,6 @@ tests.OPTIONAL_CALLBACK_UNDEFINED = function () {
client.get("op_cb2", last(name, require_string("y", name)));
};

tests.HMSET_THROWS_ON_NON_STRINGS = function () {
var name = "HMSET_THROWS_ON_NON_STRINGS";
var hash = name;
var data = { "a": [ "this is not a string" ] };

client.hmset(hash, data, cb);
function cb(e, r) {
assert(e); // should be an error!
}

// alternative way it throws
function thrower() {
client.hmset(hash, data);
}
assert.throws(thrower);
next(name);
};

tests.ENABLE_OFFLINE_QUEUE_TRUE = function () {
var name = "ENABLE_OFFLINE_QUEUE_TRUE";
var cli = redis.createClient(9999, null, {
Expand Down

0 comments on commit 405011b

Please sign in to comment.