mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 12:19:47 +07:00
release temp tables before committing in batch ops
This commit is contained in:
210
evolved.lua
210
evolved.lua
@@ -5979,19 +5979,19 @@ __evolved_batch_set = function(query, fragment, ...)
|
|||||||
__validate_fragment(fragment)
|
__validate_fragment(fragment)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local set_count = 0
|
local set_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
if __chunk_has_fragment(chunk, fragment) then
|
if __chunk_has_fragment(chunk, fragment) then
|
||||||
@@ -6000,10 +6000,11 @@ __evolved_batch_set = function(query, fragment, ...)
|
|||||||
set_count = set_count + __chunk_insert(chunk, fragment, ...)
|
set_count = set_count + __chunk_insert(chunk, fragment, ...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return set_count, false
|
return set_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6022,27 +6023,28 @@ __evolved_batch_assign = function(query, fragment, ...)
|
|||||||
__validate_fragment(fragment)
|
__validate_fragment(fragment)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local assigned_count = 0
|
local assigned_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
assigned_count = assigned_count + __chunk_assign(chunk, fragment, ...)
|
assigned_count = assigned_count + __chunk_assign(chunk, fragment, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return assigned_count, false
|
return assigned_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6061,27 +6063,28 @@ __evolved_batch_insert = function(query, fragment, ...)
|
|||||||
__validate_fragment(fragment)
|
__validate_fragment(fragment)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local inserted_count = 0
|
local inserted_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
inserted_count = inserted_count + __chunk_insert(chunk, fragment, ...)
|
inserted_count = inserted_count + __chunk_insert(chunk, fragment, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return inserted_count, false
|
return inserted_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6105,27 +6108,28 @@ __evolved_batch_remove = function(query, ...)
|
|||||||
__validate_fragments(...)
|
__validate_fragments(...)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local removed_count = 0
|
local removed_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
removed_count = removed_count + __chunk_remove(chunk, ...)
|
removed_count = removed_count + __chunk_remove(chunk, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return removed_count, false
|
return removed_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6138,27 +6142,28 @@ __evolved_batch_clear = function(query)
|
|||||||
return 0, true
|
return 0, true
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local cleared_count = 0
|
local cleared_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
cleared_count = cleared_count + __chunk_clear(chunk)
|
cleared_count = cleared_count + __chunk_clear(chunk)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return cleared_count, false
|
return cleared_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6171,27 +6176,28 @@ __evolved_batch_destroy = function(query)
|
|||||||
return 0, true
|
return 0, true
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local destroyed_count = 0
|
local destroyed_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
destroyed_count = destroyed_count + __chunk_destroy(chunk)
|
destroyed_count = destroyed_count + __chunk_destroy(chunk)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return destroyed_count, false
|
return destroyed_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6220,27 +6226,28 @@ __evolved_batch_multi_set = function(query, fragments, components)
|
|||||||
__validate_fragment_list(fragments, fragment_count)
|
__validate_fragment_list(fragments, fragment_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local set_count = 0
|
local set_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
set_count = set_count + __chunk_multi_set(chunk, fragments, fragment_count, components)
|
set_count = set_count + __chunk_multi_set(chunk, fragments, fragment_count, components)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return set_count, false
|
return set_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6269,27 +6276,28 @@ __evolved_batch_multi_assign = function(query, fragments, components)
|
|||||||
__validate_fragment_list(fragments, fragment_count)
|
__validate_fragment_list(fragments, fragment_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local assigned_count = 0
|
local assigned_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
assigned_count = assigned_count + __chunk_multi_assign(chunk, fragments, fragment_count, components)
|
assigned_count = assigned_count + __chunk_multi_assign(chunk, fragments, fragment_count, components)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return assigned_count, false
|
return assigned_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6318,27 +6326,28 @@ __evolved_batch_multi_insert = function(query, fragments, components)
|
|||||||
__validate_fragment_list(fragments, fragment_count)
|
__validate_fragment_list(fragments, fragment_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local inserted_count = 0
|
local inserted_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
inserted_count = inserted_count + __chunk_multi_insert(chunk, fragments, fragment_count, components)
|
inserted_count = inserted_count + __chunk_multi_insert(chunk, fragments, fragment_count, components)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return inserted_count, false
|
return inserted_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -6362,27 +6371,28 @@ __evolved_batch_multi_remove = function(query, fragments)
|
|||||||
__validate_fragment_list(fragments, fragment_count)
|
__validate_fragment_list(fragments, fragment_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type evolved.chunk[]
|
|
||||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
|
||||||
local chunk_count = 0
|
|
||||||
|
|
||||||
for chunk in __evolved_execute(query) do
|
|
||||||
chunk_count = chunk_count + 1
|
|
||||||
chunk_list[chunk_count] = chunk
|
|
||||||
end
|
|
||||||
|
|
||||||
local removed_count = 0
|
local removed_count = 0
|
||||||
|
|
||||||
__defer()
|
__defer()
|
||||||
do
|
do
|
||||||
|
---@type evolved.chunk[]
|
||||||
|
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||||
|
local chunk_count = 0
|
||||||
|
|
||||||
|
for chunk in __evolved_execute(query) do
|
||||||
|
chunk_count = chunk_count + 1
|
||||||
|
chunk_list[chunk_count] = chunk
|
||||||
|
end
|
||||||
|
|
||||||
for i = 1, chunk_count do
|
for i = 1, chunk_count do
|
||||||
local chunk = chunk_list[i]
|
local chunk = chunk_list[i]
|
||||||
removed_count = removed_count + __chunk_multi_remove(chunk, fragments, fragment_count)
|
removed_count = removed_count + __chunk_multi_remove(chunk, fragments, fragment_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||||
end
|
end
|
||||||
__commit()
|
__commit()
|
||||||
|
|
||||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
|
||||||
return removed_count, false
|
return removed_count, false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user