mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 04:15:28 +07:00
release temp tables before committing in batch ops
This commit is contained in:
110
evolved.lua
110
evolved.lua
@@ -5979,6 +5979,10 @@ __evolved_batch_set = function(query, fragment, ...)
|
||||
__validate_fragment(fragment)
|
||||
end
|
||||
|
||||
local set_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -5988,10 +5992,6 @@ __evolved_batch_set = function(query, fragment, ...)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local set_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
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, ...)
|
||||
end
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return set_count, false
|
||||
end
|
||||
|
||||
@@ -6022,6 +6023,10 @@ __evolved_batch_assign = function(query, fragment, ...)
|
||||
__validate_fragment(fragment)
|
||||
end
|
||||
|
||||
local assigned_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6031,18 +6036,15 @@ __evolved_batch_assign = function(query, fragment, ...)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local assigned_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
assigned_count = assigned_count + __chunk_assign(chunk, fragment, ...)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return assigned_count, false
|
||||
end
|
||||
|
||||
@@ -6061,6 +6063,10 @@ __evolved_batch_insert = function(query, fragment, ...)
|
||||
__validate_fragment(fragment)
|
||||
end
|
||||
|
||||
local inserted_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6070,18 +6076,15 @@ __evolved_batch_insert = function(query, fragment, ...)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local inserted_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
inserted_count = inserted_count + __chunk_insert(chunk, fragment, ...)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return inserted_count, false
|
||||
end
|
||||
|
||||
@@ -6105,6 +6108,10 @@ __evolved_batch_remove = function(query, ...)
|
||||
__validate_fragments(...)
|
||||
end
|
||||
|
||||
local removed_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6114,18 +6121,15 @@ __evolved_batch_remove = function(query, ...)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local removed_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
removed_count = removed_count + __chunk_remove(chunk, ...)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return removed_count, false
|
||||
end
|
||||
|
||||
@@ -6138,6 +6142,10 @@ __evolved_batch_clear = function(query)
|
||||
return 0, true
|
||||
end
|
||||
|
||||
local cleared_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6147,18 +6155,15 @@ __evolved_batch_clear = function(query)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local cleared_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
cleared_count = cleared_count + __chunk_clear(chunk)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return cleared_count, false
|
||||
end
|
||||
|
||||
@@ -6171,6 +6176,10 @@ __evolved_batch_destroy = function(query)
|
||||
return 0, true
|
||||
end
|
||||
|
||||
local destroyed_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6180,18 +6189,15 @@ __evolved_batch_destroy = function(query)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local destroyed_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
destroyed_count = destroyed_count + __chunk_destroy(chunk)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return destroyed_count, false
|
||||
end
|
||||
|
||||
@@ -6220,6 +6226,10 @@ __evolved_batch_multi_set = function(query, fragments, components)
|
||||
__validate_fragment_list(fragments, fragment_count)
|
||||
end
|
||||
|
||||
local set_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6229,18 +6239,15 @@ __evolved_batch_multi_set = function(query, fragments, components)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local set_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
set_count = set_count + __chunk_multi_set(chunk, fragments, fragment_count, components)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return set_count, false
|
||||
end
|
||||
|
||||
@@ -6269,6 +6276,10 @@ __evolved_batch_multi_assign = function(query, fragments, components)
|
||||
__validate_fragment_list(fragments, fragment_count)
|
||||
end
|
||||
|
||||
local assigned_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6278,18 +6289,15 @@ __evolved_batch_multi_assign = function(query, fragments, components)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local assigned_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
assigned_count = assigned_count + __chunk_multi_assign(chunk, fragments, fragment_count, components)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return assigned_count, false
|
||||
end
|
||||
|
||||
@@ -6318,6 +6326,10 @@ __evolved_batch_multi_insert = function(query, fragments, components)
|
||||
__validate_fragment_list(fragments, fragment_count)
|
||||
end
|
||||
|
||||
local inserted_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6327,18 +6339,15 @@ __evolved_batch_multi_insert = function(query, fragments, components)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local inserted_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
inserted_count = inserted_count + __chunk_multi_insert(chunk, fragments, fragment_count, components)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return inserted_count, false
|
||||
end
|
||||
|
||||
@@ -6362,6 +6371,10 @@ __evolved_batch_multi_remove = function(query, fragments)
|
||||
__validate_fragment_list(fragments, fragment_count)
|
||||
end
|
||||
|
||||
local removed_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
---@type evolved.chunk[]
|
||||
local chunk_list = __acquire_table(__table_pool_tag.chunk_stack)
|
||||
local chunk_count = 0
|
||||
@@ -6371,18 +6384,15 @@ __evolved_batch_multi_remove = function(query, fragments)
|
||||
chunk_list[chunk_count] = chunk
|
||||
end
|
||||
|
||||
local removed_count = 0
|
||||
|
||||
__defer()
|
||||
do
|
||||
for i = 1, chunk_count do
|
||||
local chunk = chunk_list[i]
|
||||
removed_count = removed_count + __chunk_multi_remove(chunk, fragments, fragment_count)
|
||||
end
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
end
|
||||
__commit()
|
||||
|
||||
__release_table(__table_pool_tag.chunk_stack, chunk_list)
|
||||
return removed_count, false
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user