aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2012-09-21 17:24:06 +0200
committerKim Alvefur <zash@zash.se>2012-09-21 17:24:06 +0200
commit504f8b921339427b7319c4f3cb26bdb258a04190 (patch)
treedb94260d13d565e7d2853f0656bea55fdfa34d32
parentf4717fe48c5e7238f968737121d56bd20c6c8d30 (diff)
downloadprosody-504f8b921339427b7319c4f3cb26bdb258a04190.tar.gz
prosody-504f8b921339427b7319c4f3cb26bdb258a04190.zip
mod_storage_sql: Add support for iterating over users with data in a store
-rw-r--r--plugins/mod_storage_sql.lua11
1 files changed, 11 insertions, 0 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua
index c9a45fca..f6fa94e7 100644
--- a/plugins/mod_storage_sql.lua
+++ b/plugins/mod_storage_sql.lua
@@ -298,6 +298,17 @@ function keyval_store:set(username, data)
end
if success then return ret, err; else return rollback(nil, ret); end
end
+function keyval_store:users()
+ local stmt, err = dosql("SELECT DISTINCT `user` FROM `prosody` WHERE `host`=? AND `store`=?", host, self.store);
+ if not stmt then
+ return rollback(nil, err);
+ end
+ local next = stmt:rows();
+ return commit(function()
+ local row = next();
+ return row and row[1];
+ end);
+end
local function map_store_get(key)
local stmt, err = getsql("SELECT * FROM `prosody` WHERE `host`=? AND `user`=? AND `store`=? AND `key`=?", key or "");