Michael Bayer wrote: > > On Mar 17, 2007, at 11:39 AM, Simon King wrote: > > > > > I had assumed that post_update was only necessary when you are > > inserting two rows that are mutually dependent, but in this case I > > wasn't inserting either a ReleaseLine or a Label. I suppose > > post_update can actually have a knock-on affect across the whole > > dependency graph. > > Yes, you are correct. I did the requisite three hours of > staring and uncovered the actual condition that led to this > problem, which is definitely a bug. > > Because the second flush() did not require any update > operation to either the ReleaseLine or the Label object, the > "circular" dependency graph that would be generated for them > just gets thrown away, but that also threw away a processor > thats supposed to be setting the "release_line_id" column on > your Branch table. so the fix is, if the "circular" > dependency graph doesnt get generated for a particular cycle > between mappers, or if a particular mapper within the cycle > isnt included in the "circular" dependency graph, make sure > the flush task for that mapper still gets tacked on to the > returned structure so that it can operate on other things > external to the cycle, in this case your Branch. the Branch > is related to the ReleaseLine/Label via a many-to-one, which > was not as stressed in the unit tests so its harder for this > issue to pop up (also requires the two separate flushes...so > very hard to anticipate this problem). > > So you can take the post_update out and update to rev 2424. >
Yep. I can definitely say that I wouldn't have figured that one out. Thanks again for all your help, Cheers, Simon --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---