]>
Commit | Line | Data |
---|---|---|
82a316e7 CP |
1 | #include "../dbapi2/dbapi2.h" |
2 | #include "../core/error.h" | |
3 | #include "trusts.h" | |
4 | ||
5 | extern DBAPIConn *trustsdb; | |
6 | ||
7 | void createtrusttables(int); | |
8 | void trusts_replication_complete(int); | |
9 | ||
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"); | |
14 | } | |
15 | ||
16 | static void tr_complete(const DBAPIResult *r, void *tag) { | |
17 | if(!r) { | |
18 | trusts_replication_complete(1); | |
19 | } else { | |
20 | if(!r->success) { | |
21 | Error("trusts_slave", ERR_ERROR, "A error occured executing the rename table query."); | |
22 | trusts_replication_complete(2); | |
23 | } else { | |
24 | Error("trusts_slave", ERR_INFO, "Migration table copying complete."); | |
25 | trusts_replication_complete(0); | |
26 | } | |
27 | r->clear(r); | |
28 | } | |
29 | } | |
30 | ||
31 | void trusts_replication_swap(void) { | |
32 | trusts_closedb(0); | |
33 | ||
34 | Error("trusts_slave", ERR_INFO, "Copying tables..."); | |
35 | ||
36 | trustsdb->squery(trustsdb, "BEGIN TRANSACTION", ""); | |
37 | trustsdb->squery(trustsdb, "DROP TABLE ?", "T", "groups"); | |
ca6416b1 | 38 | trustsdb->squery(trustsdb, "ALTER TABLE ? RENAME TO groups", "T", "replication_groups"); |
82a316e7 | 39 | trustsdb->squery(trustsdb, "DROP TABLE ?", "T", "hosts"); |
ca6416b1 | 40 | trustsdb->squery(trustsdb, "ALTER TABLE ? RENAME TO hosts", "T", "replication_hosts"); |
82a316e7 CP |
41 | trustsdb->query(trustsdb, tr_complete, NULL, "COMMIT", ""); |
42 | } |