<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-hg/</link>
    <language>en-us</language>

    <title>prosody-hg: plugins/mod_storage_sql.lua history</title>
    <description>plugins/mod_storage_sql.lua revision history</description>
    <item>
    <title>mod_storage_sql: optimization: use table.move for copying items between arrays</title>
    <link>http://hg.omfa.de/prosody-hg/log/f82be93b61a5/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: optimization: use table.move for copying items between arrays]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 06 Dec 2025 15:58:40 +0000</pubDate>
</item>
<item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/1b300c5a79d7/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[Merge 13.0-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 30 Sep 2025 18:20:17 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Switch mutating transactions to new API</title>
    <link>http://hg.omfa.de/prosody-hg/log/758d5d4e83ca/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Switch mutating transactions to new API<br/>
<br/>
This is just semantics at this point. A future commit will indicate<br/>
write transactions with BEGIN IMMEDIATE for SQLite3.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 19 Aug 2024 00:11:06 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Set configurable wait time for locked SQLite3 database</title>
    <link>http://hg.omfa.de/prosody-hg/log/b7714c28442f/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Set configurable wait time for locked SQLite3 database<br/>
<br/>
This tells SQLite3 to wait up to 1000 milliseconds (i.e. 1 second) for a<br/>
locked database file to become unlocked before giving up.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 30 Sep 2025 16:11:49 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Assert that serialization of archive:set() payload succeeds</title>
    <link>http://hg.omfa.de/prosody-hg/log/9a69918b5e63/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Assert that serialization of archive:set() payload succeeds<br/>
<br/>
Potentially encountered on a production server - the assert() should prevent<br/>
more subtle failure modes, and help us pinpoint the root cause.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 22 Jul 2025 16:34:27 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Also retrieve all SQLite3 indices</title>
    <link>http://hg.omfa.de/prosody-hg/log/ce4b4c2863f3/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Also retrieve all SQLite3 indices<br/>
<br/>
Missed this in 2558be2daaca]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 16 Apr 2025 15:35:07 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Retrieve all indices to see if the new one exists</title>
    <link>http://hg.omfa.de/prosody-hg/log/2558be2daaca/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Retrieve all indices to see if the new one exists<br/>
<br/>
Otherwise it warns about it being missing, even if it exists.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 11 Apr 2025 09:45:04 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Mark unused argument as such</title>
    <link>http://hg.omfa.de/prosody-hg/log/a93e7310bfcd/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Mark unused argument as such<br/>
<br/>
Make `make lint` happy again]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 10 Apr 2025 00:22:44 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Handle failure to deploy new UNIQUE index</title>
    <link>http://hg.omfa.de/prosody-hg/log/c600794cafb6/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Handle failure to deploy new UNIQUE index<br/>
<br/>
Somehow a user ended up with duplicate data preventing creation of the<br/>
new unique index needed for UPSERT (see 3ec48555b773).<br/>
<br/>
This should eventually self-heal #1918 if the duplicate data is replaced<br/>
by the older DELETE + INSERT method.<br/>
<br/>
Without any index at all, it will be slower.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 09 Apr 2025 18:27:42 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Add shell command to create tables and indices (again)</title>
    <link>http://hg.omfa.de/prosody-hg/log/497efa2cbf2c/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Add shell command to create tables and indices (again)<br/>
<br/>
This is meant as a way to diagnose e.g. issues creating indices.<br/>
<br/>
It would have been nice to capture e.g. PostgreSQL notices, but LuaDBI<br/>
would need support for this first, see https://github.com/mwild1/luadbi/issues/62]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 09 Apr 2025 15:06:48 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Delay showing SQL library error until attempted load</title>
    <link>http://hg.omfa.de/prosody-hg/log/5973a5d22ab5/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Delay showing SQL library error until attempted load<br/>
<br/>
This should ensure that e.g. failure to load LuaSQLite3 is not logged<br/>
unless it is needed, since module failures are very verbose.<br/>
<br/>
Closes #1919]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 07 Apr 2025 20:23:00 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Drop legacy index without confirmation to ease upgrades</title>
    <link>http://hg.omfa.de/prosody-hg/log/b30eaa74d35b/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Drop legacy index without confirmation to ease upgrades<br/>
<br/>
Deleting one index should be safe enough to do without requiring a<br/>
explicitly upgrading during downtime. People had trouble with this.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 23 Mar 2025 12:15:16 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix indentation</title>
    <link>http://hg.omfa.de/prosody-hg/log/40185fad7505/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix indentation<br/>
<br/>
Off-by-one in autoindent after `if not success then` since 3ec48555b773]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 19 Mar 2025 16:13:32 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix tests for SQLite3</title>
    <link>http://hg.omfa.de/prosody-hg/log/5a7f042fe05d/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix tests for SQLite3<br/>
<br/>
Tests does not run the code that initializes `sqlite_version`]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 08 Feb 2025 12:55:40 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Don't treat Enter or Ctrl-C as yes in upgrade command</title>
    <link>http://hg.omfa.de/prosody-hg/log/7209769e88bc/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Don't treat Enter or Ctrl-C as yes in upgrade command<br/>
<br/>
It seems to imply that No is the default, so it shouldn't continue doing<br/>
the Yes action unless you actually press Y]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 23 Jan 2025 22:32:44 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Detect SQLite3 without UPSERT (or SQLCipher 3.x)</title>
    <link>http://hg.omfa.de/prosody-hg/log/6b84d11aa09b/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Detect SQLite3 without UPSERT (or SQLCipher 3.x)<br/>
<br/>
SQLCipher v3.4.1 (the version in Debian 12) is based on SQLite3 v3.15.2,<br/>
while UPSERT support was introduced in SQLite3 v3.24.0<br/>
<br/>
This check was not needed before because we v3.24.0 has not been in a<br/>
version of Debian we support for a long, long time.<br/>
<br/>
Note however that SQLCipher databases are not compatible across major<br/>
versions, upgrading from v3.x to v4.x requires executing a migration.<br/>
Attempts at making `prosodyctl mod_storage_sql upgrade` perform such a<br/>
migration has not been successful.<br/>
<br/>
Executing the following in the `sqlcipher` tool should do the migration:<br/>
<br/>
	PRAGMA key = '&lt;key material&gt;';<br/>
	PRAGMA cipher_migrate;]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 23 Jan 2025 19:33:05 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Remove the word 'error' from debug messages</title>
    <link>http://hg.omfa.de/prosody-hg/log/3a23116cf063/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Remove the word 'error' from debug messages<br/>
<br/>
The word 'error' anywhere, especially in harmless debug messages, are<br/>
too often interpreted as fatal errors my some users, so best avoid that<br/>
word. These look too scary as it is, being tracebacks.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 22:30:30 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Use UUIDv7 as keys</title>
    <link>http://hg.omfa.de/prosody-hg/log/4a437dd62cc9/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Use UUIDv7 as keys<br/>
<br/>
Potentially allows sorting on those directly as they will be in<br/>
increasing order.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 17 Jul 2023 04:30:35 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Spell out missing dependencies</title>
    <link>http://hg.omfa.de/prosody-hg/log/0d3881bf29a8/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Spell out missing dependencies<br/>
<br/>
Using util.dependencies appeared to cause problems with running tests in<br/>
Busted, so this also removes that and uses pcall directly.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 22 Jul 2023 16:15:48 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Pass variables as arguments instead of upvalues</title>
    <link>http://hg.omfa.de/prosody-hg/log/0419de4e4db1/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Pass variables as arguments instead of upvalues<br/>
<br/>
Probably a workaround for the lack of argument passing when using xpcall<br/>
in Lua 5.1, no longer relevant.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 22 Jul 2023 15:22:54 +0200</pubDate>
</item>
<item>
    <title>plugins: Use boolean config method in some places</title>
    <link>http://hg.omfa.de/prosody-hg/log/bb7177efbf41/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[plugins: Use boolean config method in some places<br/>
<br/>
Because it makes sense and improves feedback via logging]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 18 Jul 2023 12:38:16 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Use integer config option for cache size</title>
    <link>http://hg.omfa.de/prosody-hg/log/b88b3e414550/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Use integer config option for cache size<br/>
<br/>
Missed this one, was probably only looking for get_option_number]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 18 Jul 2023 11:53:31 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Use config enum for 'sqlite_tune'</title>
    <link>http://hg.omfa.de/prosody-hg/log/cb6a17eaa0e6/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Use config enum for 'sqlite_tune']]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 18 Jul 2023 11:53:12 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Allow higher precision timestamps in SQLite3</title>
    <link>http://hg.omfa.de/prosody-hg/log/2a9ce229efac/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Allow higher precision timestamps in SQLite3<br/>
<br/>
Since it doesn't actually do strict typing :)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 17 Jul 2023 04:52:50 +0200</pubDate>
</item>
<item>
    <title>plugins: Use integer config API with interval specification where sensible</title>
    <link>http://hg.omfa.de/prosody-hg/log/50324f66ca2a/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[plugins: Use integer config API with interval specification where sensible<br/>
<br/>
Many of these fall into a few categories:<br/>
- util.cache size, must be &gt;= 1<br/>
- byte or item counts that logically can't be negative<br/>
- port numbers that should be in 1..0xffff]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 17 Jul 2023 01:38:54 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Remove completed TODO (testing UPSERT on PostgreSQL)</title>
    <link>http://hg.omfa.de/prosody-hg/log/9dc6de46dae3/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Remove completed TODO (testing UPSERT on PostgreSQL)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 12 Jul 2023 22:51:37 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix column name in index check for PostgreSQL</title>
    <link>http://hg.omfa.de/prosody-hg/log/706f7d1affc2/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix column name in index check for PostgreSQL<br/>
<br/>
Forgot to change the column name in 9a7523ea45cb]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 17 Jun 2023 13:37:33 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Adjust indentation to align with surrounding code</title>
    <link>http://hg.omfa.de/prosody-hg/log/cf2a907ac130/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Adjust indentation to align with surrounding code]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 17 Jun 2023 13:36:42 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Only remove old index if it exists</title>
    <link>http://hg.omfa.de/prosody-hg/log/841276d0cc25/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Only remove old index if it exists<br/>
<br/>
Avoids an error if the upgrade is performed twice..]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 17 Jun 2023 00:22:45 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Be more specific when checking for old index in SQLite3</title>
    <link>http://hg.omfa.de/prosody-hg/log/019cd1db9bec/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Be more specific when checking for old index in SQLite3<br/>
<br/>
Prevents false positives in the odd case where something other than an<br/>
index with this name might exist.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 17 Jun 2023 00:00:21 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Improve check for old table index on PostgreSQL</title>
    <link>http://hg.omfa.de/prosody-hg/log/9a7523ea45cb/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Improve check for old table index on PostgreSQL<br/>
<br/>
The &quot;pg_indexes&quot; view is much simpler to inspect than &quot;pg_class&quot;]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 16 Jun 2023 23:57:15 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Enable UPSERT with PostgreSQL</title>
    <link>http://hg.omfa.de/prosody-hg/log/6cf5c215825d/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Enable UPSERT with PostgreSQL<br/>
<br/>
Tested. Works.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 16 Jun 2023 13:03:34 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Add some TODO comments for future UPSERT work</title>
    <link>http://hg.omfa.de/prosody-hg/log/7ebb3d6afcd1/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Add some TODO comments for future UPSERT work]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 11 Jun 2023 20:25:50 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Do not keep track of quota when no quota is set</title>
    <link>http://hg.omfa.de/prosody-hg/log/9e6ede86d35d/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Do not keep track of quota when no quota is set<br/>
<br/>
No point in doing this expensive O(n) query if the result is not used<br/>
for anything.<br/>
<br/>
Will still cache the total item count if an explicit query for this is<br/>
performed, then try to keep it updated with new items added. Will likely<br/>
forget eventually tho.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 11 Jun 2023 20:05:32 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Add setting to tune SQLite3 performance vs safety</title>
    <link>http://hg.omfa.de/prosody-hg/log/0aaf67f70015/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Add setting to tune SQLite3 performance vs safety<br/>
<br/>
Notably the default journal_mode of DELETE is somewhat slow, some users<br/>
might want to catch up to the amazing performance of internal storage.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 11 Jun 2023 17:04:11 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Record all SQLite3 compile options for potential use</title>
    <link>http://hg.omfa.de/prosody-hg/log/c6f46f33cecf/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Record all SQLite3 compile options for potential use<br/>
<br/>
Knowing what features are available could be useful for future<br/>
experiments. For example, with the JSON module or full text search.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 10 Jun 2023 14:01:56 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Compose a keyval+ store out of keyval and map store methods</title>
    <link>http://hg.omfa.de/prosody-hg/log/033ea8b46d6a/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Compose a keyval+ store out of keyval and map store methods<br/>
<br/>
Removes the need for the shim in storagemanager.<br/>
<br/>
The methods only really access the 'store' property of the first (self)<br/>
argument, so this is safe.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 10 Jun 2023 16:39:48 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Add UPSERT support</title>
    <link>http://hg.omfa.de/prosody-hg/log/3ec48555b773/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Add UPSERT support<br/>
<br/>
Currently limited to SQLite3 for lack of testing on other databases.<br/>
<br/>
Adds a migration to replace the non-UNIQUE prosody_index, renaming it<br/>
prosody_unique_index since ALTER INDEX does not seem to be portable.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 10 Jun 2023 15:44:09 +0200</pubDate>
</item>
<item>
    <title>plugins: Prefix module imports with prosody namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/74b9e05af71e/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[plugins: Prefix module imports with prosody namespace]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 24 Mar 2023 13:15:28 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Remove module status on unknown 'debug' level</title>
    <link>http://hg.omfa.de/prosody-hg/log/a28f77018476/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Remove module status on unknown 'debug' level<br/>
<br/>
Expected this to be translated to 'core', but it logs an error instead.<br/>
See previous commit.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 31 Jan 2023 07:52:33 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Silence luacheck warning</title>
    <link>http://hg.omfa.de/prosody-hg/log/7f4f834fae79/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Silence luacheck warning]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 30 Jan 2023 00:40:47 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Record connection to database as module status</title>
    <link>http://hg.omfa.de/prosody-hg/log/a20923f7d5fd/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Record connection to database as module status<br/>
<br/>
Allows retrieving this in e.g. a health reporting module<br/>
<br/>
Thanks pfak]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 30 Jan 2023 00:38:26 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Support SQLite3 without LuaDBI</title>
    <link>http://hg.omfa.de/prosody-hg/log/1638991caed2/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Support SQLite3 without LuaDBI]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 19 Jan 2023 16:56:12 +0100</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/0c3184378032/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 06 Jan 2023 23:53:50 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix #1639</title>
    <link>http://hg.omfa.de/prosody-hg/log/fba795dd99c8/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix #1639<br/>
<br/>
Patch by Peter Kieser]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 01 Jan 2023 16:20:58 +0100</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/735bf601b78d/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 29 Dec 2022 18:28:50 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Don't avoid initialization under prosodyctl (fix #1787)</title>
    <link>http://hg.omfa.de/prosody-hg/log/dd6c35325241/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Don't avoid initialization under prosodyctl (fix #1787)<br/>
<br/>
Fixes `prosodyctl adduser` etc.<br/>
<br/>
Prior to d580e6a57cbb the line did nothing.<br/>
<br/>
Sometimes storage in the prosodyctl context does cause weirdness, as it<br/>
is not in a host context, but rather a variant of global.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 29 Dec 2022 18:06:35 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Strip timestamp precision in queries to fix error (thanks muppeth)</title>
    <link>http://hg.omfa.de/prosody-hg/log/4cfd09343947/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Strip timestamp precision in queries to fix error (thanks muppeth)<br/>
<br/>
Fixes<br/>
Error in SQL transaction: Error executing statement parameters: ERROR:  invalid input syntax for integer<br/>
<br/>
This was handled for INSERT in 9524bb7f3944 but not SELECT.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 07 Sep 2022 12:27:12 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Drop archive timestamp precision pending schema update</title>
    <link>http://hg.omfa.de/prosody-hg/log/9524bb7f3944/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Drop archive timestamp precision pending schema update<br/>
<br/>
The &quot;when&quot; column is an INTEGER which will probably be unhappy about<br/>
storing higher precision timestamps, so we keep the older behavior for<br/>
now.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 14 Aug 2022 17:29:39 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/3d3a0c4e2662/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 29 Jul 2022 17:10:31 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix summary API with Postgres (fixes #1766)</title>
    <link>http://hg.omfa.de/prosody-hg/log/5aafcf6a0730/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix summary API with Postgres (fixes #1766)<br/>
<br/>
The ORDER BY and LIMIT clauses are not needed and don't even make much<br/>
sense. This part was most likely a leftover from the :find method.<br/>
<br/>
Tested with sqlite and postgres 14]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 22 Jul 2022 19:09:50 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/0572b6e604a3/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 27 Jul 2022 00:10:08 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix bypass of load procedure under prosodyctl</title>
    <link>http://hg.omfa.de/prosody-hg/log/d580e6a57cbb/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix bypass of load procedure under prosodyctl<br/>
<br/>
There's no 'prosody.prosodyctl' property other than this one, introduced<br/>
in 6216743c188c in 2015.<br/>
<br/>
Guessing that the intent was to skip this when running as a prosodyctl<br/>
command. The module.command code does its own version of this<br/>
initialization, so this seems likely.<br/>
<br/>
Thanks raja for noticing]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 26 Jul 2022 00:39:16 +0200</pubDate>
</item>
<item>
    <title>compat: Remove handling of Lua 5.1 location of 'unpack' function</title>
    <link>http://hg.omfa.de/prosody-hg/log/39ae08180c81/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[compat: Remove handling of Lua 5.1 location of 'unpack' function]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 11 Jul 2022 19:07:38 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Remove Lua 5.1 compatibility hack</title>
    <link>http://hg.omfa.de/prosody-hg/log/18d33668c5fa/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Remove Lua 5.1 compatibility hack<br/>
<br/>
Part of #1600]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 02 Jul 2022 17:30:06 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Return cached total where it makes sense</title>
    <link>http://hg.omfa.de/prosody-hg/log/0b350909da24/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Return cached total where it makes sense<br/>
<br/>
This should skip the summary SQL query when not needed, ie when the<br/>
cached value can be used directly.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 30 Nov 2021 16:26:01 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Adjust handling of 'total' for multi-id queries</title>
    <link>http://hg.omfa.de/prosody-hg/log/f0e78fa8f24c/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Adjust handling of 'total' for multi-id queries<br/>
<br/>
Otherwise a query for a set of ids may cause that value to be cached,<br/>
despite only covering a subset.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 30 Nov 2021 15:58:23 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix traceback on multi-user deletion</title>
    <link>http://hg.omfa.de/prosody-hg/log/395dce95508d/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix traceback on multi-user deletion<br/>
<br/>
jid.join(true, ...) fails.<br/>
<br/>
Since we don't know which users this affects, best to clear the whole<br/>
cache.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 30 Nov 2021 15:24:17 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Expose multi-user deletion capability</title>
    <link>http://hg.omfa.de/prosody-hg/log/0f2b5182e80b/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Expose multi-user deletion capability<br/>
<br/>
archive_store:delete(true) deletes messages for all users, which would<br/>
allow some simplification when this is supported.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 30 Nov 2021 01:21:02 +0100</pubDate>
</item>
<item>
    <title>mod_storage_sql: Fix for move of yes/no function (Thanks Kasim)</title>
    <link>http://hg.omfa.de/prosody-hg/log/04abe65b8067/plugins/mod_storage_sql.lua</link>
    <description><![CDATA[mod_storage_sql: Fix for move of yes/no function (Thanks Kasim)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 21 Jun 2021 17:31:17 +0200</pubDate>
</item>

  </channel>
</rss>
