Update colddb.lua

This commit is contained in:
Coder12a 2018-12-08 14:56:38 -06:00
parent b9a64f723c
commit 60bc174189
1 changed files with 55 additions and 10 deletions

View File

@ -213,8 +213,13 @@ local function delete_lines_func_end(args)
args.file:seek("set")
args.file:write(string.format("%i",args.count))
args.file:close()
os.remove(args.oldfile)
os.rename(args.copyfile, args.oldfile)
if args.count < 1 then
os.remove(args.oldfile)
os.remove(args.copyfile)
else
os.remove(args.oldfile)
os.rename(args.copyfile, args.oldfile)
end
for i,l in pairs(args.removedlist) do
db.indexes_pool[cs].deleted_items[i] = nil
end
@ -440,10 +445,6 @@ function colddb.iterate_index_table(db,begin_func,func_on_iterate,end_func,args,
-- Get count
fl:seek("set")
local c = tonumber(fl:read("*l"))
if c < 1 then
-- If theres nothing to index then return
return false
end
if not args then
args = {}
end
@ -455,6 +456,12 @@ function colddb.iterate_index_table(db,begin_func,func_on_iterate,end_func,args,
args = a
end
end
if c < 1 then
-- If theres nothing to index then return
end_func(args)
db.indexes_pool[cs].iterating = false
return false
end
-- Start iterating the index table
iterate(db,func_on_iterate,end_func,c,cs,args)
elseif f and f.file then
@ -537,7 +544,26 @@ function colddb.set_key(db,name,tag_name)
end
function colddb.get(db,name,tag_name,callback)
extended_api.Async.queue_task(db.async_pool,function()
if callback then
extended_api.Async.queue_task(db.async_pool,function()
local t = ""
if tag_name then
t = colddb.get_tag(db,tag_name)
end
local cs = string.format("%s%s",t,name)
local pm = db.mem_pool[cs]
if pm then
return pm.mem
else
local _table = colddb.load_table(db,name,tag_name)
if _table then
load_into_mem(db,name,_table,tag_name)
return _table
end
end
return nil
end,callback)
else
local t = ""
if tag_name then
t = colddb.get_tag(db,tag_name)
@ -554,11 +580,30 @@ function colddb.get(db,name,tag_name,callback)
end
end
return nil
end,callback)
end
end
function colddb.get_key(db,name,tag_name,callback)
extended_api.Async.queue_task(db.async_pool,function()
if callback then
extended_api.Async.queue_task(db.async_pool,function()
local t = ""
if tag_name then
t = colddb.get_tag(db,tag_name)
end
local cs = string.format("%s%s",t,name)
local pm = db.mem_pool[cs]
if pm then
return true
else
local bool = colddb.load_key(db,name,tag_name)
if bool then
load_into_mem(db,name,bool,tag_name)
return bool
end
end
return nil
end,callback)
else
local t = ""
if tag_name then
t = colddb.get_tag(db,tag_name)
@ -575,7 +620,7 @@ function colddb.get_key(db,name,tag_name,callback)
end
end
return nil
end,callback)
end
end
function colddb.remove(db,name,tag_name)