Comparison

plugins/mod_storage_sql.lua @ 5154:429c8eeea035

mod_storage_sql: Add support for iterating over users with data in a store
author Kim Alvefur <zash@zash.se>
date Fri, 21 Sep 2012 17:24:06 +0200
parent 5133:1443d1c37c6c
child 5209:f5d121846d53
comparison
equal deleted inserted replaced
5153:688aeac0012a 5154:429c8eeea035
296 if not connection and connect() then 296 if not connection and connect() then
297 success, ret, err = xpcall(function() return keyval_store_set(data); end, debug.traceback); 297 success, ret, err = xpcall(function() return keyval_store_set(data); end, debug.traceback);
298 end 298 end
299 if success then return ret, err; else return rollback(nil, ret); end 299 if success then return ret, err; else return rollback(nil, ret); end
300 end 300 end
301 function keyval_store:users()
302 local stmt, err = dosql("SELECT DISTINCT `user` FROM `prosody` WHERE `host`=? AND `store`=?", host, self.store);
303 if not stmt then
304 return rollback(nil, err);
305 end
306 local next = stmt:rows();
307 return commit(function()
308 local row = next();
309 return row and row[1];
310 end);
311 end
301 312
302 local function map_store_get(key) 313 local function map_store_get(key)
303 local stmt, err = getsql("SELECT * FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?", key or ""); 314 local stmt, err = getsql("SELECT * FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?", key or "");
304 if not stmt then return rollback(nil, err); end 315 if not stmt then return rollback(nil, err); end
305 316