Mercurial > prosody-modules
comparison mod_storage_ejabberdsql_readonly/mod_storage_ejabberdsql_readonly.lua @ 5684:7c264a2cb970
mod_storage_ejabberdsql_readonly: Don't use MySQL-specific syntax
util.sql should take care of transformation when MySQL is in use.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 30 Oct 2023 12:28:12 +0000 |
parents | e0663dcd934d |
children |
comparison
equal
deleted
inserted
replaced
5683:c69320fc438b | 5684:7c264a2cb970 |
---|---|
23 local host = module.host; | 23 local host = module.host; |
24 local user, store; | 24 local user, store; |
25 | 25 |
26 local function keyval_store_get() | 26 local function keyval_store_get() |
27 if store == "accounts" then | 27 if store == "accounts" then |
28 --for row in engine:select("SELECT `password`,`created_at` FROM `users` WHERE `username`=?", user or "") do | 28 --for row in engine:select("SELECT \"password\",\"created_at\" FROM \"users\" WHERE \"username\"=?", user or "") do |
29 local result; | 29 local result; |
30 for row in engine:select("SELECT `password` FROM `users` WHERE `username`=? LIMIT 1", user or "") do result = row end | 30 for row in engine:select("SELECT \"password\" FROM \"users\" WHERE \"username\"=? LIMIT 1", user or "") do result = row end |
31 local password = result[1]; | 31 local password = result[1]; |
32 --local created_at = result[2]; | 32 --local created_at = result[2]; |
33 return { password = password }; | 33 return { password = password }; |
34 | 34 |
35 elseif store == "roster" then | 35 elseif store == "roster" then |
36 local roster = {}; | 36 local roster = {}; |
37 local pending = nil; | 37 local pending = nil; |
38 --for row in engine:select("SELECT `jid`,`nick`,`subscription`,`ask`,`askmessage`,`server`,`subscribe`,`type`,`created_at` FROM `rosterusers` WHERE `username`=?", user or "") do | 38 --for row in engine:select("SELECT \"jid\",\"nick\",\"subscription\",\"ask\",\"askmessage\",\"server\",\"subscribe\",\"type\",\"created_at\" FROM \"rosterusers\" WHERE \"username\"=?", user or "") do |
39 for row in engine:select("SELECT `jid`,`nick`,`subscription`,`ask` FROM `rosterusers` WHERE `username`=?", user or "") do | 39 for row in engine:select("SELECT \"jid\",\"nick\",\"subscription\",\"ask\" FROM \"rosterusers\" WHERE \"username\"=?", user or "") do |
40 local contact = row[1]; | 40 local contact = row[1]; |
41 local name = row[2]; | 41 local name = row[2]; |
42 if name == "" then name = nil; end | 42 if name == "" then name = nil; end |
43 local subscription = row[3]; | 43 local subscription = row[3]; |
44 if subscription == "N" then | 44 if subscription == "N" then |
70 --local subscribe = row[7]; | 70 --local subscribe = row[7]; |
71 --local type = row[8]; | 71 --local type = row[8]; |
72 --local created_at = row[9]; | 72 --local created_at = row[9]; |
73 | 73 |
74 local groups = {}; | 74 local groups = {}; |
75 for row in engine:select("SELECT `grp` FROM `rostergroups` WHERE `username`=? AND `jid`=?", user or "", contact) do | 75 for row in engine:select("SELECT \"grp\" FROM \"rostergroups\" WHERE \"username\"=? AND \"jid\"=?", user or "", contact) do |
76 local group = row[1]; | 76 local group = row[1]; |
77 groups[group] = true; | 77 groups[group] = true; |
78 end | 78 end |
79 | 79 |
80 roster[contact] = { name = name, ask = ask, subscription = subscription, groups = groups }; | 80 roster[contact] = { name = name, ask = ask, subscription = subscription, groups = groups }; |
81 end | 81 end |
82 return roster; | 82 return roster; |
83 | 83 |
84 elseif store == "vcard" then | 84 elseif store == "vcard" then |
85 local result = nil; | 85 local result = nil; |
86 for row in engine:select("SELECT `vcard` FROM `vcard` WHERE `username`=? LIMIT 1", user or "") do result = row end | 86 for row in engine:select("SELECT \"vcard\" FROM \"vcard\" WHERE \"username\"=? LIMIT 1", user or "") do result = row end |
87 if not result then | 87 if not result then |
88 return nil; | 88 return nil; |
89 end | 89 end |
90 local data, err = xml_parse(result[1]); | 90 local data, err = xml_parse(result[1]); |
91 if data then | 91 if data then |
93 end | 93 end |
94 | 94 |
95 elseif store == "private" then | 95 elseif store == "private" then |
96 local private = nil; | 96 local private = nil; |
97 local result; | 97 local result; |
98 for row in engine:select("SELECT `namespace`,`data` FROM `private_storage` WHERE `username`=?", user or "") do | 98 for row in engine:select("SELECT \"namespace\",\"data\" FROM \"private_storage\" WHERE \"username\"=?", user or "") do |
99 if private == nil then private = {} end; | 99 if private == nil then private = {} end; |
100 local namespace = row[1]; | 100 local namespace = row[1]; |
101 local data, err = xml_parse(row[2]); | 101 local data, err = xml_parse(row[2]); |
102 if data then | 102 if data then |
103 assert(namespace == data.attr.xmlns, "Wrong namespace in private data!"); | 103 assert(namespace == data.attr.xmlns, "Wrong namespace in private data!"); |
123 return result; | 123 return result; |
124 end | 124 end |
125 | 125 |
126 function keyval_store:users() | 126 function keyval_store:users() |
127 local ok, result = engine:transaction(function() | 127 local ok, result = engine:transaction(function() |
128 return engine:select("SELECT `username` FROM `users`"); | 128 return engine:select("SELECT \"username\" FROM \"users\""); |
129 end); | 129 end); |
130 if not ok then return ok, result end | 130 if not ok then return ok, result end |
131 return iterator(result); | 131 return iterator(result); |
132 end | 132 end |
133 | 133 |