Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
151b606c
Commit
151b606c
authored
Oct 01, 2012
by
antirez
Browse files
Revert "Scripting: redis.NIL to return nil bulk replies."
This reverts commit
e061d797
. Conflicts: src/scripting.c
parent
f1466e11
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/scripting.c
View file @
151b606c
...
@@ -544,14 +544,6 @@ void scriptingInit(void) {
...
@@ -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) {
...
@@ -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) {
...
@@ -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) {
...
@@ -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
;
...
...
tests/unit/scripting.tcl
View file @
151b606c
...
@@ -30,10 +30,6 @@ start_server {tags {"scripting"}} {
...
@@ -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
}}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment