Software /
code /
prosody
Comparison
plugins/mod_storage_sql.lua @ 13154:6cf5c215825d
mod_storage_sql: Enable UPSERT with PostgreSQL
Tested. Works.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 16 Jun 2023 13:03:34 +0200 |
parent | 13151:7ebb3d6afcd1 |
child | 13155:9a7523ea45cb |
comparison
equal
deleted
inserted
replaced
13153:88879f83b5b4 | 13154:6cf5c215825d |
---|---|
216 WHERE "host"=? AND "user"=? AND "store"=? AND "key"=? | 216 WHERE "host"=? AND "user"=? AND "store"=? AND "key"=? |
217 LIMIT 1; | 217 LIMIT 1; |
218 ]]; | 218 ]]; |
219 for key, data in pairs(keydatas) do | 219 for key, data in pairs(keydatas) do |
220 -- TODO Test UPSERT in PostgreSQL before enabling it. | 220 -- TODO Test UPSERT in PostgreSQL before enabling it. |
221 if type(key) == "string" and key ~= "" and engine.params.driver == "SQLite3" and data ~= self.remove then | 221 if type(key) == "string" and key ~= "" and engine.params.driver ~= "MySQL" and data ~= self.remove then |
222 local t, value = assert(serialize(data)); | 222 local t, value = assert(serialize(data)); |
223 engine:insert(upsert_sql, host, username or "", self.store, key, t, value, t, value); | 223 engine:insert(upsert_sql, host, username or "", self.store, key, t, value, t, value); |
224 elseif type(key) == "string" and key ~= "" then | 224 elseif type(key) == "string" and key ~= "" then |
225 engine:delete(delete_sql, | 225 engine:delete(delete_sql, |
226 host, username or "", self.store, key); | 226 host, username or "", self.store, key); |