aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-11-11 02:26:40 +0100
committerKim Alvefur <zash@zash.se>2018-11-11 02:26:40 +0100
commit1086a1325d81d6cc6a49d2bf2e6bc81e984a2bd0 (patch)
treec65f94113187ddb72916663f623ee31e5d4947ff /util
parent60aa42033a2f87013638a7318fb1ea8997e074a2 (diff)
downloadprosody-1086a1325d81d6cc6a49d2bf2e6bc81e984a2bd0.tar.gz
prosody-1086a1325d81d6cc6a49d2bf2e6bc81e984a2bd0.zip
util.sql: Switch from hacky multi-arg xpcall implementation to util.xpcall
Diffstat (limited to 'util')
-rw-r--r--util/sql.lua9
1 files changed, 4 insertions, 5 deletions
diff --git a/util/sql.lua b/util/sql.lua
index 67a5d683..47900102 100644
--- a/util/sql.lua
+++ b/util/sql.lua
@@ -1,9 +1,10 @@
local setmetatable, getmetatable = setmetatable, getmetatable;
-local ipairs, unpack, select = ipairs, table.unpack or unpack, select; --luacheck: ignore 113 143
+local ipairs = ipairs;
local tostring = tostring;
local type = type;
-local assert, pcall, xpcall, debug_traceback = assert, pcall, xpcall, debug.traceback;
+local assert, pcall, debug_traceback = assert, pcall, debug.traceback;
+local xpcall = require "util.xpcall".xpcall;
local t_concat = table.concat;
local log = require "util.logger".init("sql");
@@ -200,11 +201,9 @@ function engine:_transaction(func, ...)
if not ok then return ok, err; end
end
--assert(not self.__transaction, "Recursive transactions not allowed");
- local args, n_args = {...}, select("#", ...);
- local function f() return func(unpack(args, 1, n_args)); end
log("debug", "SQL transaction begin [%s]", tostring(func));
self.__transaction = true;
- local success, a, b, c = xpcall(f, handleerr);
+ local success, a, b, c = xpcall(func, handleerr, ...);
self.__transaction = nil;
if success then
log("debug", "SQL transaction success [%s]", tostring(func));