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);