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, >>> this >>> 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))[0] > > ...because it's designed to work with ZODB 3.8 and 3.9, but doesn't support > versions. > > 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 keyword argument? Jim -- Jim Fulton _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev