[ZODB-Dev] Analyzing the committed data during one transaction

Shane Hathaway shane at hathawaymix.org
Mon Nov 17 14:37:42 EST 2008


Jim Fulton wrote:
> On Nov 17, 2008, at 8:21 AM, Andreas Jung wrote:
> ...
>> Rephrasing my question in a different way: how can I get hold of the  
>> "parent" object based a persistent object with a _p_jar
>> connection? E.g. when the ZODB commits a subobject (e.g. a BTree or  
>> a bucket) of portal_catalog/Indexes/some_index then I would like to  
>> get hold of the the related parent "first-class" Zope 2 object (e.g.  
>> derived from SimpleItem/Item or something like that).
> 
> There isn't a practical way to do that. (If you're willing to work  
> very very very hard, you can iterate over a database and build up a  
> reverese reference structure.)

RelStorage might help here.  RelStorage builds a complete list of
reverse references every time it packs (as long as GC is turned on).
The references are kept in tables, so it's easy to query them, and the
list is kept even after packing is finished since it theoretically
speeds up the next pack.

Shane



More information about the ZODB-Dev mailing list