понять:
...
local function setmap(table)
return setmetatable(table, {__serialize = 'map'})
end
log.info(json.encode(setmap(box.space._space:select{280})))
...
На выходе:
{"1":[280,1,"_space","memtx",0,{},[{"name":"id","type":"unsigned"},{"name":"owner","type":"unsigned"},{"name":"name","type":"string"},{"name":"engine","type":"string"},{"name":"field_count","type":"unsigned"},{"name":"flags","type":"map"},{"name":"format","type":"array"}]]}
Ключ для индекса массива есть, а вот наименований полей - нет... Как это кошерно делается? Другими словами хотелось бы получить:
{"1":["id": 280, "owner": 1, "name": "_space", "engine": "memtx", "field_count": 0, "flags": {}, "format": [{"name":"id","type":"unsigned"},{"name":"owner","type":"unsigned"},{"name":"name","type":"string"},{"name":"engine","type":"string"},{"name":"field_count","type":"unsigned"},{"name":"flags","type":"map"},{"name":"format","type":"array"}]]}
box.space._vspace:get({box.schema.VSPACE_ID}):tomap({names_only = true})
Обсуждают сегодня