mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 00:28:26 -05:00
Revert "Scripting: redis.NIL to return nil bulk replies."
This reverts commit e061d797d739f2beeb22b9e8ac519d1df070e3a8. Conflicts: src/scripting.c
This commit is contained in:
parent
9c21b72bb9
commit
ece77037e9
@ -544,14 +544,6 @@ void scriptingInit(void) {
|
|||||||
lua_pushcfunction(lua, luaRedisSha1hexCommand);
|
lua_pushcfunction(lua, luaRedisSha1hexCommand);
|
||||||
lua_settable(lua, -3);
|
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 */
|
/* redis.error_reply and redis.status_reply */
|
||||||
lua_pushstring(lua, "error_reply");
|
lua_pushstring(lua, "error_reply");
|
||||||
lua_pushcfunction(lua, luaRedisErrorReplyCommand);
|
lua_pushcfunction(lua, luaRedisErrorReplyCommand);
|
||||||
@ -654,30 +646,9 @@ void luaReplyToRedisReply(redisClient *c, lua_State *lua) {
|
|||||||
addReplyLongLong(c,(long long)lua_tonumber(lua,-1));
|
addReplyLongLong(c,(long long)lua_tonumber(lua,-1));
|
||||||
break;
|
break;
|
||||||
case LUA_TTABLE:
|
case LUA_TTABLE:
|
||||||
/* The table can be an array or it may be in a special format that
|
/* We need to check if it is an array, an error, or a status reply.
|
||||||
* Lua uses to return special Redis protocol data types.
|
* Error are returned as a single element table with 'err' field.
|
||||||
*
|
* Status replies are returned as single elment table with 'ok' field */
|
||||||
* 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 */
|
|
||||||
lua_pushstring(lua,"err");
|
lua_pushstring(lua,"err");
|
||||||
lua_gettable(lua,-2);
|
lua_gettable(lua,-2);
|
||||||
t = lua_type(lua,-1);
|
t = lua_type(lua,-1);
|
||||||
@ -689,9 +660,8 @@ void luaReplyToRedisReply(redisClient *c, lua_State *lua) {
|
|||||||
lua_pop(lua,2);
|
lua_pop(lua,2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lua_pop(lua,1);
|
|
||||||
|
|
||||||
/* Status reply */
|
lua_pop(lua,1);
|
||||||
lua_pushstring(lua,"ok");
|
lua_pushstring(lua,"ok");
|
||||||
lua_gettable(lua,-2);
|
lua_gettable(lua,-2);
|
||||||
t = lua_type(lua,-1);
|
t = lua_type(lua,-1);
|
||||||
@ -702,7 +672,6 @@ void luaReplyToRedisReply(redisClient *c, lua_State *lua) {
|
|||||||
sdsfree(ok);
|
sdsfree(ok);
|
||||||
lua_pop(lua,1);
|
lua_pop(lua,1);
|
||||||
} else {
|
} else {
|
||||||
/* Multi bulk reply. */
|
|
||||||
void *replylen = addDeferredMultiBulkLength(c);
|
void *replylen = addDeferredMultiBulkLength(c);
|
||||||
int j = 1, mbulklen = 0;
|
int j = 1, mbulklen = 0;
|
||||||
|
|
||||||
|
@ -30,10 +30,6 @@ start_server {tags {"scripting"}} {
|
|||||||
set _ $e
|
set _ $e
|
||||||
} {this is an error}
|
} {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} {
|
test {EVAL - Lua table -> Redis protocol type conversion} {
|
||||||
r eval {return {1,2,3,'ciao',{1,2}}} 0
|
r eval {return {1,2,3,'ciao',{1,2}}} 0
|
||||||
} {1 2 3 ciao {1 2}}
|
} {1 2 3 ciao {1 2}}
|
||||||
|
Loading…
Reference in New Issue
Block a user