[POS-commit] r5350 - in stoqlib/trunk/stoqlib: database
Johan Dahlin
jdahlin at async.com.br
Tue Nov 14 17:17:01 BRST 2006
Author: jdahlin
Date: Tue Nov 14 17:17:00 2006
New Revision: 5350
Modified:
stoqlib/trunk/stoqlib/database/synchronization.py
stoqlib/trunk/stoqlib/domain/station.py
Log:
Refactor serialize_update/insert
Modified: stoqlib/trunk/stoqlib/database/synchronization.py
==============================================================================
--- stoqlib/trunk/stoqlib/database/synchronization.py (original)
+++ stoqlib/trunk/stoqlib/database/synchronization.py Tue Nov 14 17:17:00 2006
@@ -133,48 +133,49 @@
log.info(cmd)
return cmd
- def _serialize_inserts(self, results):
+ def _serialize_inserts(self, table, timestamp):
+ results = self._station.fetchTIDsForOtherStations(
+ table, timestamp, TransactionEntry.CREATED, self._conn)
+
data = ""
- for so in results:
- tec = TransactionEntry.get(so.te_createdID, connection=self._conn)
- data += self._serialize_insert(tec)
- tem = TransactionEntry.get(so.te_modifiedID, connection=self._conn)
- data += self._serialize_insert(tem)
- data += self._serialize_insert(so)
+ if results:
+ log.info("Serializing %d insert(s) to table %s" % (
+ results.count(), table.sqlmeta.table))
+
+ for so in results:
+ tec = TransactionEntry.get(so.te_createdID,
+ connection=self._conn)
+ data += self._serialize_insert(tec)
+ tem = TransactionEntry.get(so.te_modifiedID,
+ connection=self._conn)
+ data += self._serialize_insert(tem)
+ data += self._serialize_insert(so)
return data
- def _serialize_updates(self, results):
+ def _serialize_updates(self, table, timestamp):
+ results = self._station.fetchTIDsForOtherStations(
+ table, timestamp, TransactionEntry.MODIFIED, self._conn)
+
data = ""
- for so in results:
- te = TransactionEntry.get(so.te_modifiedID, connection=self._conn)
- data += self._serialize_update(te)
- data += self._serialize_update(so)
+ if results:
+ log.info("Serializing %d update(s) to table %s" % (
+ results.count(), table.sqlmeta.table))
+
+ for so in results:
+ te = TransactionEntry.get(so.te_modifiedID,
+ connection=self._conn)
+ data += self._serialize_update(te)
+ data += self._serialize_update(so)
return data
def get_chunks(self, timestamp):
data = ""
- station = self._station
+
for table in self._tables:
- if table == TransactionEntry:
- continue
- for te_type in [TransactionEntry.CREATED, TransactionEntry.MODIFIED]:
- results = station.fetchTIDsForOtherStations(
- table, timestamp, te_type, self._conn)
- if not results:
- continue
-
- if te_type == TransactionEntry.CREATED:
- log.info("Serializing %d insert(s) to table %s" % (
- results.count(), table.sqlmeta.table))
- data += self._serialize_inserts(results)
- elif te_type == TransactionEntry.MODIFIED:
- log.info("Serializing %d update(s) to table %s" % (
- results.count(), table.sqlmeta.table))
- data += self._serialize_updates(results)
- else:
- raise AssertionError
+ data += self._serialize_inserts(table, timestamp)
+ data += self._serialize_updates(table, timestamp)
if len(data) >= CHUNKSIZE:
yield data[:CHUNKSIZE]
Modified: stoqlib/trunk/stoqlib/domain/station.py
==============================================================================
--- stoqlib/trunk/stoqlib/domain/station.py (original)
+++ stoqlib/trunk/stoqlib/domain/station.py Tue Nov 14 17:17:00 2006
@@ -131,7 +131,7 @@
"""
if table == TransactionEntry:
- return []
+ return
return table.select(
AND(self._fetchTIDs(table, timestamp, te_type),
@@ -149,7 +149,7 @@
@param trans: a transaction
"""
if table == TransactionEntry:
- return []
+ return
return table.select(
AND(self._fetchTIDs(table, timestamp, te_type),
More information about the POS-commit
mailing list