--[[******************************************************************************]] --[[* Project ib_win_core *]] --[[* Copyright 2023 Incredibuild Software Ltd. *]] --[[* All rights reserved *]] --[[******************************************************************************]] local function flush_temp(initDB) redis.call('SELECT', initDB) redis.call('FLUSHDB') end local function collect_metadata_entries(infoDB, initDB, keycursor) redis.call('SELECT', infoDB) local keys keycursor, keys = unpack(redis.call('SCAN', keycursor)) for _, key in ipairs(keys) do if #key == 32 then local valcursor = '0' repeat local vals valcursor, vals = unpack(redis.call('HSCAN', key, valcursor)) redis.call('SELECT', initDB) for i = 1, #vals, 2 do redis.call('HSET', key, vals[i], 0) end redis.call('SELECT', infoDB) until valcursor == '0' end end return keycursor end local function main(infoDB, initDB, keycursor) if keycursor == '0' then flush_temp(initDB) end keycursor = collect_metadata_entries(infoDB, initDB, keycursor) return 'OK' .. "\n" .. keycursor end local ok, result = pcall(main, unpack(ARGV)) return result