diff options
author | Kim Alvefur <zash@zash.se> | 2023-06-10 14:01:56 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-06-10 14:01:56 +0200 |
commit | 0b74dcbdfbb598e58aad43d48316b97e5a0a5675 (patch) | |
tree | 7fb64ff72d4ac03472c03b9b4d9265828793f870 /plugins | |
parent | dd37d17425c58e539c7aa19d30edf194b2c8f071 (diff) | |
download | prosody-0b74dcbdfbb598e58aad43d48316b97e5a0a5675.tar.gz prosody-0b74dcbdfbb598e58aad43d48316b97e5a0a5675.zip |
mod_storage_sql: Record all SQLite3 compile options for potential use
Knowing what features are available could be useful for future
experiments. For example, with the JSON module or full text search.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_storage_sql.lua | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index 4b38e9fe..3caf4572 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -623,7 +623,7 @@ function archive_store:delete(username, query) LIMIT %s OFFSET ? );]]; if engine.params.driver == "SQLite3" then - if engine._have_delete_limit then + if engine.sqlite_compile_options.enable_update_delete_limit then sql_query = [[ DELETE FROM "prosodyarchive" WHERE %s @@ -903,11 +903,13 @@ function module.load() end end if engine.params.driver == "SQLite3" then + local compile_options = {} for row in engine:select("PRAGMA compile_options") do - if row[1] == "ENABLE_UPDATE_DELETE_LIMIT" then - engine._have_delete_limit = true; - end + local option = row[1]:lower(); + local opt, val = option:match("^([^=]+)=(.*)$"); + compile_options[opt or option] = tonumber(val) or val or true; end + engine.sqlite_compile_options = compile_options; end module:set_status("info", "Connected to " .. engine.params.driver); end, function (engine) -- luacheck: ignore 431/engine |