_zaprevision(): Watch out for the key being missing from the metadata
table; use a safer way of pulling out the lrevid. pack(): The previous logic was broken, now we first gather up all the oids of the objects affected by packable transactions, then we cruise through the metadata records of each of those in a separate loop. Watch out for the call to c.set_range() on the txnoids table to raise a DBNotFoundError. This just means we're trying to access a time stamp past the last one in this table, so just use c.last() if that happens, and pack all transactions. When cruising through the txnoids table, stop when you see the first PROTECTED_TRANSACTION. That means that we've already packed back to this transaction (Jim, is this right? Would we ever want to re-pack a transaction that's already been packed?)
Showing
Please register or sign in to comment