Commit dfb00ea7 authored by Chris McDonough's avatar Chris McDonough

Implement loadEx for ZEO-mounted tempstorages to work properly under ZODB 3.3.

parent 1db94df7
......@@ -120,6 +120,25 @@ class TemporaryStorage(BaseStorage, ConflictResolvingStorage):
finally:
self._lock_release()
# Apparently loadEx is required to use this as a ZEO storage for
# ZODB 3.3. There are no docs for loadEx, and the tests don't
# make it totally clear what it's meant to do. In MappingStorage,
# it has the same argument signature and returns the same thing
# that load does, so we do the same here. There is a comment in
# FileStorage about its loadEx method implementation that says "a
# variant of load that also returns a transaction id. ZEO wants
# this for managing its cache". But 'load' appears to do that
# too, so uh, who knows. Apparently it also has something to do
# with the ZODB iteration interface, because it's tested within
# the IteratorStorage tests, although we don't need to support the
# iterator interface for ZEO to work, so we don't. MVCC, despite
# descriptions to the contrary on the Wiki doesn't actually need
# the iterator interface either. Just doing my duty to promote
# the lost art of voodoo programming here, there's no need to
# thank me! - CM
loadEx = load
def loadSerial(self, oid, serial, marker=[]):
""" this is only useful to make conflict resolution work. It
does not actually implement all the semantics that a revisioning
......
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