- 20 Apr, 2001 4 commits
-
-
Barry Warsaw authored
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?)
-
Andreas Jung authored
-
Andreas Jung authored
-
Andreas Jung authored
-
- 19 Apr, 2001 4 commits
-
-
Barry Warsaw authored
fails this.
-
Barry Warsaw authored
_zaprevision(): Fixed some silly typos. pack(): Adopt from FileStorage, the conversion scheme of time floats to TimeStamps. Also use set_range() on the txnoids cursor because it's not likely that the timestamp (i.e. revid) will actually exist, and we just want the one just before the specified time. Use prev() instead of prev_dup() on the cursor.
-
Michel Pelletier authored
-
Chris McDonough authored
-
- 18 Apr, 2001 5 commits
-
-
Martijn Pieters authored
object of its choosing, so we can retrieve the output of RESPONSE.write().
-
Barry Warsaw authored
out duplicate oids. If a pickle holds multiple references to an object, that object's oids will show up multiple times in the returned list.
-
Chris McDonough authored
-
Barry Warsaw authored
implementation of the GCable `interface' for integration with a cyclic garbage detector.
-
Amos Latteier authored
-
- 17 Apr, 2001 9 commits
-
-
Amos Latteier authored
Many small structured text fixes, typos fixes, and small wording and formatting corrections. Some of these were pointed out by Tom Deprez.
-
Chris McDonough authored
-
Fred Drake authored
err_exit(): Allow the return code to be passed in, with a default of 2 (the usual Unix return code for command-line errors). main(): Remove the try/except that caused a second err_exit() call after the first call to sys.exit(). The try/except also prevented the first sys.exit() from actually doing so (only the second, unintended call caused the script to exit). When the users *asks* for help (-h), use a return code of 0 since there was not an error that triggered the help message.
-
Andreas Jung authored
-
Andreas Jung authored
-
- 16 Apr, 2001 13 commits
-
-
Martijn Pieters authored
-
Barry Warsaw authored
-
Barry Warsaw authored
try clause. :(
-
Barry Warsaw authored
-
Barry Warsaw authored
object, don't rely on its prevrevid pointing to the previous metadata record. That's because if the last revision was an undo record, it will have a prevrevid pointing to the revision previous to the undone one (phew! :). Instead, use a cursor to find the previous metadata record to restore. supportsTransactionalUndo(): Added.
-
Barry Warsaw authored
creating test classes.
-
Barry Warsaw authored
-
Andreas Jung authored
-
Andreas Jung authored
-
Shane Hathaway authored
-
- 13 Apr, 2001 5 commits
-
-
Barry Warsaw authored
- DNE='nonexist' (it must be 8-bytes and this is easier to pick out) - _setupDBs(): use self._nextserial to choose the next serial number; this is easier to follow than the timestamps the base class uses. - _begin(): increment the next serial counter and assign that to self._serial Also, ObjectDoesNotExist: Removed, we use a straight KeyError instead since undoInfo() obviates the need for this hack. _vote(): Removed, base class implements this. _finish(): At the point we increment the refcounts of the objects refered to by the pickle, add a FIXME note. Since objects can be revised multiple times in a single transaction, we need to make sure not to increment the refcounts too many times (not tested, so fix is deferred for later). abortVersion(): The API requires a VersionError if we try to abort the empty version. load(): The API requires that if we try to load an object on a non-existant version, or a version on which the object hasn't been changed, that we return the non-version revision of the object instead of raising an exception. transactionalUndo(): Fixed (as yet untested) bug in extraction of pack-protection flag from transaction's metadata. Rewrote the "revid <> tid" branch to check the commit log for any promised revisions to the object committed earlier in this transaction. It's possible to revise an object multiple times in the same transaction. Along those lines, record modified oids in a set (i.e. dictionary) so we don't get duplicates in the return value. Use write_object_undo() instead of write_moved_object() so previous revisions in the same transaction get recorded by the commit log. undoLog(): The API defines default arguments, and their semantics, so use them! Also fix typos in cursor method calls and in unpacking the user/desc/ext information in the transaction metadata.
-
Barry Warsaw authored
-
Barry Warsaw authored
storages, so it makes sense to move it from there to the base class. _vote() now puts the CommitLog into the promised() state.
-
Barry Warsaw authored
the infrastructure.
-