Thanks Michael for the detailed explanations and the patch. This is really helping!
2008/4/26, Michael Bayer <[EMAIL PROTECTED]>: > > On Apr 25, 2008, at 4:21 PM, Eric Lemoine wrote: > > >>> > > Module sqlalchemy.orm.mapper:1198 in _postfetch > >>> elif not c.primary_key and c.key in params and > >>> self._get_state_attr_by_column(state, c) != params[c.key]: > > Module shapely.geometry.base:255 in __ne__ > >>> return not self.equals(other) > > Module shapely.predicates:30 in __call__ > >>> raise RuntimeError() # breakpoint FIXME > > > > As you can see, the __ne__ method of my object does get called. > > > this occurs well after any attribute history detection has happened > (which is where comparsions are supposed to happen, if needed). The > mapper has inserted the row, then it goes through the list of > parameters which were inserted into the row and compares them to what > is present on the object, so that it can detect Column-level defaults > and other "auto"-generated values which need to be placed on the > instance. This methodology is out of date since nowadays we have an > explicit listing of which columns were "auto" generated - so try out > the attached patch which refines the methodology in that section and > should solve the issue. The patch is also ticket #1015 which needs > test coverage before it can be committed (but is high priority for > 0.4.6). > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---