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.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org