local exe_ret = {}
exe_ret["result"] =""
exe_ret["error"] = ""

local key = KEYS[1]
local rets = redis.call( 'EXISTS' , KEYS[1] )
if rets == 0 then
    exe_ret["error"] = "{key not exists}"
    return cjson.encode(exe_ret)
end

for i=1,#ARGV do
  local index = key .. "-" .. ARGV[i]
  local data  = redis.call( 'HGETALL' , index )
  if type(data) == "table" then
    local x = table.concat(data,'~')
    if ( exe_ret["result"] ~= "" ) then
      exe_ret["result"] = exe_ret["result"] .."^";
    end
    exe_ret["result"] = exe_ret["result"] .. index .. '&' .. x
  else
    if exe_ret["error"] ~= "" then
      exe_ret["error"] = exe_ret["error"] .. "&"
    end
    exe_ret["error"] = exe_ret["error"] .. index
  end
end
if exe_ret["error"] == "" then
    exe_ret["error"] = "success"
end

return cjson.encode(exe_ret)