I can add to this that the issue occurs only on consequent appends. 
Here's the excerpt that leads to the IntegrityError, demonstrating this.

   >>> collection = Collection()
   >>> session.save(collection)
   >>> session.flush()

   >>> vinyl = Vinyl()
   >>> colletion.records.append(vinyl)
   >>> session.flush()

   >>> vinyl = Vinyl()
   >>> colletion.records.append(vinyl)
   >>> session.flush()

The last two flushes are based on the following units-of-work:

First append and flush:

(Pdb) pp self.tasks.values()
[UOWTask(0x27a5f90) Mapper: 'Mapper/Join object on soup(40067600) and 
__builtin__:ICollection(41259088)',
  UOWTask(0x27a5ff0) Mapper: 'Mapper/Join object on Join object on 
soup(40067600) and __builtin__:IAlbum(40262960)(41171024) and 
__builtin__:IVinyl(41171728)',
  UOWTask(0x27a5fd0) Mapper: 'Relation/relation']

Second append and flush:

(Pdb) pp self.tasks.values()
[UOWTask(0x2799fd0) Mapper: 'Mapper/Join object on Join object on 
soup(40067600) and __builtin__:IAlbum(40262960)(41171024) and 
__builtin__:IVinyl(41171728)',
  UOWTask(0x27993b0) Mapper: 'Relation/relation']

For some reason, on the first append, there's a "save" task defined on 
the collection-object; I'm not sure what this means, since it should 
already be saved and flushed at this point.

\malthe

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to