On Thu, Nov 19, 2009 at 5:55 PM, Chris Withers <ch...@simplistix.co.uk> wrote:
> Jim Fulton wrote:
>> What's wrong with the original idea of having the server pass the size
>> as a keyword parameter? The ZEO protocol is irrelevant.
> Okay, from the top:
>>> So, a ZODB 3.9.3 ClientStorage calls the ServerStub's history method,
>>> does an rpc call:
>>> self.rpc.call('history', oid, length)
>>> Which comes in on the server and gets despatched straight out in:
>>> /ZEO/zrpc/connection.py", line 581, in handle_request
> ...which ends up calling .history(oid,length) on zeoraid on RAIDStorage
> which is implemented as follows:
> def history(self, oid, version='', size=1):
> """Return a sequence of history information dictionaries."""
> assert version is ''
> return self._apply_single_storage('history', (oid, size))
> ...because it's designed to work with ZODB 3.8 and 3.9, but doesn't support
> We can't use the trick of making the Z308-->Z309 adapter pass the size as a
> keyword parameter, because the call in this case is actually in ZODB 3.9's
> ClientStorage, so the adapter is never used, because all components involved
> are speaking Z309.
So why not add a history method to ZEOStorage that passes size as a
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org