Software / code / prosody
Comparison
plugins/mod_storage_sql.lua @ 5055:d466d2088a61
mod_storage_sql: Complete transactions in list_stores and purge
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 30 Jul 2012 06:01:41 +0200 |
| parent | 5054:97385c45e670 |
| child | 5056:a125daa42ad4 |
comparison
equal
deleted
inserted
replaced
| 5054:97385c45e670 | 5055:d466d2088a61 |
|---|---|
| 381 if username == true or not username then | 381 if username == true or not username then |
| 382 username = ""; | 382 username = ""; |
| 383 end | 383 end |
| 384 local stmt, err = dosql(sql, host, username); | 384 local stmt, err = dosql(sql, host, username); |
| 385 if not stmt then | 385 if not stmt then |
| 386 return nil, err; | 386 return rollback(nil, err); |
| 387 end | 387 end |
| 388 local stores = {}; | 388 local stores = {}; |
| 389 for row in stmt:rows() do | 389 for row in stmt:rows() do |
| 390 stores[#stores+1] = row[1]; | 390 stores[#stores+1] = row[1]; |
| 391 end | 391 end |
| 392 return stores; | 392 return commit(stores); |
| 393 end | 393 end |
| 394 | 394 |
| 395 function driver:purge(username) | 395 function driver:purge(username) |
| 396 local stmt, err = dosql("DELETE FROM `prosody` WHERE `host`=? AND `user`=?", host, username); | 396 local stmt, err = dosql("DELETE FROM `prosody` WHERE `host`=? AND `user`=?", host, username); |
| 397 if not stmt then return stmt, err; end | 397 if not stmt then return rollback(stmt, err); end |
| 398 local changed, err = stmt:affected(); | 398 local changed, err = stmt:affected(); |
| 399 if not changed then return changed, err; end | 399 if not changed then return rollback(changed, err); end |
| 400 return true, changed; | 400 return commit(true, changed); |
| 401 end | 401 end |
| 402 | 402 |
| 403 module:add_item("data-driver", driver); | 403 module:add_item("data-driver", driver); |