Comparison

plugins/mod_storage_sql2.lua @ 6335:eaf6e7986934

plugins/mod_storage_sql2: Return correct arguments from map_store operations
author daurnimator <quae@daurnimator.com>
date Thu, 07 Aug 2014 18:34:51 -0400
parent 6331:fc5113a4540e
child 6349:0cee68dd35f8
comparison
equal deleted inserted replaced
6334:ba2555e06c7c 6335:eaf6e7986934
217 end 217 end
218 218
219 local map_store = {}; 219 local map_store = {};
220 map_store.__index = map_store; 220 map_store.__index = map_store;
221 function map_store:get(username, key) 221 function map_store:get(username, key)
222 return engine:transaction(function() 222 local ok, result = engine:transaction(function()
223 if type(key) == "string" and key ~= "" then 223 if type(key) == "string" and key ~= "" then
224 local iter, state, first = engine:select("SELECT * FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?", 224 local iter, state, first = engine:select("SELECT * FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?",
225 host, username, self.store, key or ""); 225 host, username, self.store, key or "");
226 local row = iter(state, first); 226 local row = iter(state, first);
227 if row then 227 if row then
231 end 231 end
232 else 232 else
233 error("TODO: non-string keys"); 233 error("TODO: non-string keys");
234 end 234 end
235 end); 235 end);
236 if not ok then return nil, result; end
237 return result;
236 end 238 end
237 function map_store:set(username, key, data) 239 function map_store:set(username, key, data)
238 return engine:transaction(function() 240 local ok, result = engine:transaction(function()
239 if data == nil then 241 if data == nil then
240 engine:delete("DELETE FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?", 242 engine:delete("DELETE FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?",
241 host, username, self.store, key or ""); 243 host, username, self.store, key or "");
242 elseif type(key) == "string" and key ~= "" then 244 elseif type(key) == "string" and key ~= "" then
243 local t, value = assert(serialize(data)); 245 local t, value = assert(serialize(data));
246 else 248 else
247 error("TODO: non-string keys"); 249 error("TODO: non-string keys");
248 end 250 end
249 return true; 251 return true;
250 end); 252 end);
253 if not ok then return nil, result; end
254 return result;
251 end 255 end
252 256
253 local archive_store = {} 257 local archive_store = {}
254 archive_store.__index = archive_store 258 archive_store.__index = archive_store
255 function archive_store:append(username, key, when, with, value) 259 function archive_store:append(username, key, when, with, value)