Is there any chance of making it an option to not have a weak reference ?
How about something on the session level with sessionmaker ? Having it the session level would help me but not sure if make sense there. I have things in the model object that depend on the object not going away. I have been using the identity map and module object to help with a number of book keeping things. Michael Bayer wrote: > Hello - > > Over here at SQLAlchemy labs, we have a new branch available against > 0.4 which I am considering merging (well, most of it will probably be > merged regardless for architectural cleanup purposes, but theres one > particular feature in question). The primary behavioral change is > that the identity map within the Session again becomes "weak > referencing", the way it used to be back in 0.2 and part of 0.3. > > While we've had an option on Session to use a "weak referencing" > identity map for a long time, it was an incomplete solution, since > objects which had pending changes on them (i.e. "dirty") would get > garbage collected if external references were removed. > > With this new approach, we have reorganized how mapped objects are > tracked and built our own version of WeakValueDictionary, which will > detect "dirty" objects as they are dereferenced and recreate them > internally so that pending changes are still persisted, even if > external references to the object are dropped; but unchanged objects > get removed from the session automatically when dereferenced on the > outside. > > I bring all this up here for two reasons: > > 1. Do you guys want a weak-referencing identity map ? It would remove > the need to "prune" sessions which are growing too large with old > objects. Right now whatever goes into a session stays that way until > you explicitly expunge(), clear() or prune(). > > 2. If we do merge it, beta6 would be the "testing ground" for the new > idea, which does contain some possible concurrency situations and > therefore some new mutex-code, which while its pretty straightforward, > always introduces the chance of issues when beta6 comes out (since its > hard to recreate threading issues on various platforms, ive noticed my > own platform of OSX is particularly bad at finding sync bugs). > > OK, reason number 3. The new branch is at > http://svn.sqlalchemy.org/sqlalchemy/branches/entity_management , and > the threaded part of the equation, if people want to review, is at > http://www.sqlalchemy.org/trac/browser/sqlalchemy/branches/entity_management/lib/sqlalchemy/orm/attributes.py > , using the "InstanceState" and "InstanceDict" classes (InstanceDict > forms the basis for the session.identity_map attribute). > > - mike > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---