[Neo-report] r2500 gregory - /trunk/neo/storage/database/btree.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Dec 9 18:17:44 CET 2010
Author: gregory
Date: Thu Dec 9 18:17:44 2010
New Revision: 2500
Log:
Return max (oid|serial) from the last iteration before the loop break.
Modified:
trunk/neo/storage/database/btree.py
Modified: trunk/neo/storage/database/btree.py
==============================================================================
--- trunk/neo/storage/database/btree.py [iso-8859-1] (original)
+++ trunk/neo/storage/database/btree.py [iso-8859-1] Thu Dec 9 18:17:44 2010
@@ -684,12 +684,14 @@ class BTreeDatabaseManager(DatabaseManag
# XXX: XOR is a lame checksum
count = 0
tid_checksum = 0
+ tid = 0
max_tid = 0
- for max_tid in safeIter(self._trans.keys, min=util.u64(min_tid)):
- if max_tid % num_partitions == partition:
+ for tid in safeIter(self._trans.keys, min=util.u64(min_tid)):
+ if tid % num_partitions == partition:
if count >= length:
break
- tid_checksum ^= max_tid
+ max_tid = tid
+ tid_checksum ^= tid
count += 1
return count, tid_checksum, util.p64(max_tid)
@@ -701,21 +703,23 @@ class BTreeDatabaseManager(DatabaseManag
min_oid = u64(min_oid)
count = 0
oid_checksum = serial_checksum = 0
- max_oid = max_serial = 0
- for max_oid, tserial in safeIter(self._obj.items, min=min_oid):
- if max_oid % num_partitions == partition:
- if max_oid == min_oid:
+ max_oid = oid = max_serial = serial = 0
+ for oid, tserial in safeIter(self._obj.items, min=min_oid):
+ if oid % num_partitions == partition:
+ if oid == min_oid:
try:
serial_iter = tserial.keys(min=u64(min_serial))
except ValueError:
continue
else:
serial_iter = tserial.keys()
- for max_serial in serial_iter:
+ for serial in serial_iter:
if count >= length:
break
- oid_checksum ^= max_oid
- serial_checksum ^= max_serial
+ oid_checksum ^= oid
+ serial_checksum ^= serial
+ max_serial = serial
+ max_oid = oid
count += 1
if count >= length:
break
More information about the Neo-report
mailing list