Commit b8f6efe9 authored by Barry Warsaw's avatar Barry Warsaw

Added some debugging aids:

    - 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.
parent 98f0dea1
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment