diff options
author | Marko Kreen | 2009-06-01 14:02:24 +0000 |
---|---|---|
committer | Marko Kreen | 2009-06-01 14:02:24 +0000 |
commit | 3d0d37b5898d7b382af66427cee4de62d693d821 (patch) | |
tree | cfac99eacbf995e36505bcc67326f216eea31f9e | |
parent | b0a7b52d53d661f054955674793ef722451ec71c (diff) |
londiste: make compare/repair work with new cascade code
-rw-r--r-- | python/londiste/repair.py | 2 | ||||
-rw-r--r-- | python/londiste/syncer.py | 18 |
2 files changed, 13 insertions, 7 deletions
diff --git a/python/londiste/repair.py b/python/londiste/repair.py index 414425a5..2f50ee50 100644 --- a/python/londiste/repair.py +++ b/python/londiste/repair.py @@ -119,7 +119,7 @@ class Repairer(Syncer): fqlist = [skytools.quote_ident(col) for col in field_list] - tbl_expr = "%s (%s)" % (skytools.quote_ident(tbl), ",".join(fqlist)) + tbl_expr = "%s (%s)" % (skytools.quote_fqident(tbl), ",".join(fqlist)) self.log.debug("using copy expr: %s" % tbl_expr) diff --git a/python/londiste/syncer.py b/python/londiste/syncer.py index 44ee92bd..bae1fa56 100644 --- a/python/londiste/syncer.py +++ b/python/londiste/syncer.py @@ -63,7 +63,7 @@ class Syncer(skytools.DBScript): def get_subscriber_table_state(self, dst_db): """Load table states from subscriber.""" dst_curs = dst_db.cursor() - q = "select * from londiste.subscriber_get_table_list(%s)" + q = "select * from londiste.get_table_list(%s) where local" dst_curs.execute(q, [self.queue_name]) res = dst_curs.dictfetchall() dst_db.commit() @@ -71,12 +71,13 @@ class Syncer(skytools.DBScript): def work(self): """Syncer main function.""" - lock_db = self.get_database('provider_db', cache='lock_db') - setup_db = self.get_database('provider_db', cache='setup_db', autocommit = 1) + dst_db = self.get_database('db', isolation_level = skytools.I_SERIALIZABLE) + provider_loc = self.get_provider_location(dst_db) - src_db = self.get_database('provider_db', - isolation_level = skytools.I_SERIALIZABLE) - dst_db = self.get_database('subscriber_db', + lock_db = self.get_database('lock_db', connstr = provider_loc) + setup_db = self.get_database('setup_db', autocommit = 1, connstr = provider_loc) + + src_db = self.get_database('provider_db', connstr = provider_loc, isolation_level = skytools.I_SERIALIZABLE) setup_curs = setup_db.cursor() @@ -209,3 +210,8 @@ class Syncer(skytools.DBScript): """ raise Exception('process_sync not implemented') + def get_provider_location(self, dst_db): + curs = dst_db.cursor() + q = "select * from pgq_node.get_node_info(%s)" + rows = self.exec_cmd(dst_db, q, [self.queue_name]) + return rows[0]['provider_location'] |