summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2012-10-01 10:10:03 +0200
committerantirez <antirez@gmail.com>2012-10-01 10:10:03 +0200
commit151b606c11b18e1afc8df132910f26b313143bb4 (patch)
tree8a25826c6ef1675df21287dbf4f4ff00e7610919
parentf1466e11cd1c2c41f01e505e54f465d0eb4b4f42 (diff)
downloadredis-151b606c11b18e1afc8df132910f26b313143bb4.tar.gz
Revert "Scripting: redis.NIL to return nil bulk replies."
This reverts commit e061d797d739f2beeb22b9e8ac519d1df070e3a8. Conflicts: src/scripting.c
-rw-r--r--src/scripting.c39
-rw-r--r--tests/unit/scripting.tcl4
2 files changed, 4 insertions, 39 deletions
diff --git a/src/scripting.c b/src/scripting.c
index 01aa2006f..13f608e67 100644
--- a/src/scripting.c
+++ b/src/scripting.c
@@ -544,14 +544,6 @@ void scriptingInit(void) {
lua_pushcfunction(lua, luaRedisSha1hexCommand);
lua_settable(lua, -3);
- /* redis.NIL */
- lua_pushstring(lua, "NIL");
- lua_newtable(lua);
- lua_pushstring(lua, "nilbulk");
- lua_pushboolean(lua, 1);
- lua_settable(lua, -3);
- lua_settable(lua, -3);
-
/* redis.error_reply and redis.status_reply */
lua_pushstring(lua, "error_reply");
lua_pushcfunction(lua, luaRedisErrorReplyCommand);
@@ -654,30 +646,9 @@ void luaReplyToRedisReply(redisClient *c, lua_State *lua) {
addReplyLongLong(c,(long long)lua_tonumber(lua,-1));
break;
case LUA_TTABLE:
- /* The table can be an array or it may be in a special format that
- * Lua uses to return special Redis protocol data types.
- *
- * 1) Errors are retuned as a single element table with 'err' field.
- * 2) Status reply are returned as a single element table with 'ok'
- * field.
- * 3) A Redis nil bulk reply is returned as a single element table
- * with 'nilbulk' field set to true.
- *
- * All the rest is considered just an array and is translated into
- * a Redis multi bulk reply. */
-
- /* Nil bulk reply */
- lua_pushstring(lua,"nilbulk");
- lua_gettable(lua,-2);
- t = lua_type(lua,-1);
- if (t == LUA_TBOOLEAN) {
- addReply(c,shared.nullbulk);
- lua_pop(lua,2);
- return;
- }
- lua_pop(lua,1);
-
- /* Error reply */
+ /* We need to check if it is an array, an error, or a status reply.
+ * Error are returned as a single element table with 'err' field.
+ * Status replies are returned as single elment table with 'ok' field */
lua_pushstring(lua,"err");
lua_gettable(lua,-2);
t = lua_type(lua,-1);
@@ -689,9 +660,8 @@ void luaReplyToRedisReply(redisClient *c, lua_State *lua) {
lua_pop(lua,2);
return;
}
- lua_pop(lua,1);
- /* Status reply */
+ lua_pop(lua,1);
lua_pushstring(lua,"ok");
lua_gettable(lua,-2);
t = lua_type(lua,-1);
@@ -702,7 +672,6 @@ void luaReplyToRedisReply(redisClient *c, lua_State *lua) {
sdsfree(ok);
lua_pop(lua,1);
} else {
- /* Multi bulk reply. */
void *replylen = addDeferredMultiBulkLength(c);
int j = 1, mbulklen = 0;
diff --git a/tests/unit/scripting.tcl b/tests/unit/scripting.tcl
index 8634263a9..6dbdb6b63 100644
--- a/tests/unit/scripting.tcl
+++ b/tests/unit/scripting.tcl
@@ -30,10 +30,6 @@ start_server {tags {"scripting"}} {
set _ $e
} {this is an error}
- test {EVAL - Lua nil reply -> Redis protocol type conversion} {
- r eval {return {1,redis.NIL,{nilbulk=true},4}} 0
- } {1 {} {} 4}
-
test {EVAL - Lua table -> Redis protocol type conversion} {
r eval {return {1,2,3,'ciao',{1,2}}} 0
} {1 2 3 ciao {1 2}}