diff options
author | Matthew Wild <mwild1@gmail.com> | 2012-09-19 12:14:08 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2012-09-19 12:14:08 +0100 |
commit | a868b41b589356e9231df919a1771cc99b20d54b (patch) | |
tree | cf7a08a965f0bb9816285dcc830a140b62fc0ab1 /plugins/mod_storage_sql.lua | |
parent | 8ffa6ad43baaab15a9bf11d51d229312315ac44e (diff) | |
parent | 3b96fac7491ce85877b7ee2038ae90b2d501ca6c (diff) | |
download | prosody-a868b41b589356e9231df919a1771cc99b20d54b.tar.gz prosody-a868b41b589356e9231df919a1771cc99b20d54b.zip |
Merge 0.9->trunk
Diffstat (limited to 'plugins/mod_storage_sql.lua')
-rw-r--r-- | plugins/mod_storage_sql.lua | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index ebc337bf..c9a45fca 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -374,10 +374,9 @@ function driver:open(store, typ) return nil, "unsupported-store"; end -function driver:list_stores(username) -- Not to be confused with the list store type - local sql = (username == true - and "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`!=?" - or "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`=?"); +function driver:stores(username) + local sql = "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`" .. + (username == true and "!=?" or "=?"); if username == true or not username then username = ""; end @@ -385,11 +384,11 @@ function driver:list_stores(username) -- Not to be confused with the list store if not stmt then return rollback(nil, err); end - local stores = {}; - for row in stmt:rows() do - stores[#stores+1] = row[1]; - end - return commit(stores); + local next = stmt:rows(); + return commit(function() + local row = next(); + return row and row[1]; + end); end function driver:purge(username) |