]>
jfr.im git - irc/quakenet/newserv.git/blob - trusts/db-slave.c
1 #include "../dbapi2/dbapi2.h"
2 #include "../core/error.h"
5 extern DBAPIConn
*trustsdb
;
7 void createtrusttables(int);
8 void trusts_replication_complete(int);
10 void trusts_replication_createtables(void) {
11 createtrusttables(TABLES_REPLICATION
);
12 trustsdb
->squery(trustsdb
, "DELETE FROM ?", "T", "replication_groups");
13 trustsdb
->squery(trustsdb
, "DELETE FROM ?", "T", "replication_hosts");
16 static void tr_complete(const DBAPIResult
*r
, void *tag
) {
18 trusts_replication_complete(1);
21 Error("trusts_slave", ERR_ERROR
, "A error occured executing the rename table query.");
22 trusts_replication_complete(2);
24 Error("trusts_slave", ERR_INFO
, "Migration table copying complete.");
25 trusts_replication_complete(0);
31 void trusts_replication_swap(void) {
34 Error("trusts_slave", ERR_INFO
, "Copying tables...");
36 trustsdb
->squery(trustsdb
, "BEGIN TRANSACTION", "");
37 trustsdb
->squery(trustsdb
, "DROP TABLE ?", "T", "groups");
38 trustsdb
->squery(trustsdb
, "ALTER TABLE ? RENAME TO ?", "Ts", "replication_groups", "groups");
39 trustsdb
->squery(trustsdb
, "DROP TABLE ?", "T", "hosts");
40 trustsdb
->squery(trustsdb
, "ALTER TABLE ? RENAME TO ?", "Ts", "replication_hosts", "hosts");
41 trustsdb
->query(trustsdb
, tr_complete
, NULL
, "COMMIT", "");