diff options
author | Kim Alvefur <zash@zash.se> | 2019-05-28 00:46:24 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-05-28 00:46:24 +0200 |
commit | 5a2a81bfe97c366e6da39442534b4e58ba64ae71 (patch) | |
tree | 77ff08c02a2a43ac136d0eb681981b6e37b96e4b | |
parent | 0f41a59a9661bdd737ae343567d73bc47a5d5ba6 (diff) | |
download | prosody-5a2a81bfe97c366e6da39442534b4e58ba64ae71.tar.gz prosody-5a2a81bfe97c366e6da39442534b4e58ba64ae71.zip |
mod_storage_sql: Correctly return item-not-found error
`return ok, err` comes out as `transaction_ok, ok, err`
-rw-r--r-- | plugins/mod_storage_sql.lua | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index 5da5e448..cfc8450c 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -367,7 +367,7 @@ function archive_store:find(username, query) if total ~= nil and query.limit == 0 and query.start == nil and query.with == nil and query["end"] == nil and query.key == nil then return noop, total; end - local ok, result = engine:transaction(function() + local ok, result, err = engine:transaction(function() local sql_query = [[ SELECT "key", "type", "value", "when", "with" FROM "prosodyarchive" @@ -407,7 +407,8 @@ function archive_store:find(username, query) and "DESC" or "ASC", query.limit and " LIMIT ?" or ""); return engine:select(sql_query, unpack(args)); end); - if not ok then return ok, result end + if not ok then return ok, result; end + if not result then return nil, err; end return function() local row = result(); if row ~= nil then |