Redis - Lua tables as return values - why is this not working -
Redis - Lua tables as return values - why is this not working -
when run code through redis eval homecoming no results. thought why not working?
redis-cli eval "$(cat bug.lua)" 0 bug.lua local retv = {} retv["test"] = 1000 homecoming retv if initialize table value lone gets printed.
$ cat bug.lua --!/usr/bin/env lua local retv = {"this", "is", "a", "bug" } retv["test"] = 1000 homecoming retv $ redis-cli eval "$(cat bug.lua)" 2 b 1) "this" 2) "is" 3) "a" 4) "bug"
if refer redis eval documentation can see rules redis uses convert lua table redis reply:
so except special cases 2 , 3, redis assumes table sequence (i.e list) means reads retv[1], retv[2], ... until encounters nil element (here corresponding source code section).
this explains why retv["test"] ignored in case.
if alter code with:
local retv = {"this", "is", "a", "bug" } retv[5] = 1000 homecoming retv then additional element gets returned:
1) "this" 2) "is" 3) "a" 4) "bug" 5) (integer) 1000 lua redis lua-table
Comments
Post a Comment