here. There are 2 paths in the dependency-graph, and if it chooses one of them, it goes wrong.
The testcase sometimes runs, sometimes not - changing anything (e.g. cmdline params) may change the hash-strategy (hence the choice) - so try many times. one dump is the ok-one, the other is error one. > yeah sorry I can conceive of a potential pattern that would raise > this issue but im not able to create a mapping/scenario that > illustrates it. see if you can get me something on this. > > On Mar 19, 2007, at 6:49 AM, svilen wrote: > >> Michael Bayer wrote: > >>> So you can take the post_update out and update to rev 2424. > > > > i have a problem with this 2424, before that was ok. > > As i can't separate a short case now, here the conditions: > > > > multi-table-inheritance, polymorphic. Nothing else too fancy. > > table_Entity has primary db_id, hand-made/sequence obj_id and > > other data; > > While populating the database: > > ... > > * SA: INFO INSERT INTO "Entity" (disabled, obj_id, atype) VALUES > > (?, ?, ?) > > * SA: INFO [0, 1, 'Person'] > > * SA: INFO INSERT INTO "Person" (name_id, db_id) VALUES (?, ?, ) > > * SA: INFO [2, 1] > > > > and now 2423 does: > > * SA: INFO COMMIT > > > > while 2424 does: > > * SA: INFO INSERT INTO "Entity" (disabled, obj_id, db_id, atype) > > VALUES (?, ?, ?, ?) > > * SA: INFO [0, 1, 1, 'Person'] > > * SA: INFO ROLLBACK > > > > > > for whatever reason it decides that the same object is dirty AND > > new, and attempts to reinsert it once more. > > Any idea? do u want logs? > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
* SA: DEBUG Dependent tuples: (Name->Entity) (Passport->Entity) (Address->Entity) (Entity->Address) * SA: DEBUG Dependency sort: Mapper|Name|Name Mapper|Passport|Passport Mapper|Address|Address (cycles: [Mapper|Address|Address, Mapper|Entity|Entity]) * SA: INFO Task dump: UOWTask(<address1>, Name/Name/None) (save/update phase) |- Save Name(<address2>) | |- Process Person(<address3>).ime | |- UOWTask(<address4>, Passport/Passport/None) (save/update phase) | | |- Process Person(<address3>).passport | | | |- UOWTask(<address5>, Address/Address/None) (contains cyclical sub-tasks) (save/update phase) | | |- Save (placeholder) | | | | | |- UOWTask(<address5>-><address6>, Person/Person/None) (save/update phase) | | | |- Save Person(<address3>) | | | |---- | | | | | | | | |- UOWTask(<address7>, Entity/Entity/None) (save/update phase) | | | |- Save Person(<address3>) | | | |- (empty task) | | | | | |---- | | | |---- | | |- UOWTask(<address4>, Passport/Passport/None) (delete phase) | | | |- UOWTask(<address5>, Address/Address/None) (contains cyclical sub-tasks) (delete phase) | | | | | |- UOWTask(<address7>, Entity/Entity/None) (delete phase) | | | |- (empty task) | | | | | | | | |- UOWTask(<address5>-><address6>, Person/Person/None) (delete phase) | | | |---- | | | | | |---- | | | |---- | |---- * SA: DEBUG (Name|Name) save_obj() start, batched * SA: INFO BEGIN * SA: DEBUG (Name|Name) save_obj() table 'Name' instance Name@<address2> identity (<class 'base.Name'>, (None,), None) * SA: INFO INSERT INTO "Name" (ime) VALUES (?) * SA: INFO ['Person0'] * SA: DEBUG execute() instances: Name@<address2>(Name.db_id)->Person@<address3>(Person.ime_id) ('1') * SA: DEBUG (Passport|Passport) save_obj() start, batched * SA: DEBUG (Address|Address) save_obj() start, batched * SA: DEBUG (Person|Person) save_obj() start, batched * SA: DEBUG (Person|Person) save_obj() table 'Entity' instance Person@<address3> identity (<class 'models.Person'>, (None,), None) * SA: DEBUG (Person|Person) Using polymorphic identity 'Person' for insert column 'atype' * SA: INFO INSERT INTO "Entity" (disabled, time_trans, time_valid, atype) VALUES (?, ?, ?, ?) * SA: INFO [0, None, None, 'Person'] * SA: DEBUG execute() instances: Person@<address3>(Entity.db_id)->Person@<address3>(Person.db_id) ('1') * SA: DEBUG (Person|Person) save_obj() table 'Person' instance Person@<address3> identity (<class 'models.Person'>, (1,), None) * SA: INFO INSERT INTO "Person" (ime_id, vazrast, address_id, egn, passport_id, snimka, db_id) VALUES (?, ?, ?, ?, ?, ?, ?) * SA: INFO [1, 10, None, '', None, None, 1] * SA: DEBUG execute() instances: Person@<address3>(Entity.db_id)->Person@<address3>(Person.db_id) ('1') * SA: DEBUG (Entity|Entity) save_obj() start, batched * SA: DEBUG (Entity|Entity) save_obj() table 'Entity' instance Person@<address3> identity (<class 'models.Person'>, (1,), None) * SA: DEBUG (Entity|Entity) Using polymorphic identity 'Person' for insert column 'atype' * SA: INFO INSERT INTO "Entity" (disabled, time_trans, time_valid, db_id, atype) VALUES (?, ?, ?, ?, ?) * SA: INFO [0, None, None, 1, 'Person'] * SA: INFO ROLLBACK
* SA: DEBUG Dependent tuples: (Name->Entity) (Passport->Entity) (Address->Entity) (Entity->Address) * SA: DEBUG Dependency sort: Mapper|Name|Name Mapper|Passport|Passport Mapper|Entity|Entity (cycles: [Mapper|Entity|Entity, Mapper|Address|Address]) * SA: INFO Task dump: UOWTask(<address1>, Name/Name/None) (save/update phase) |- Save Name(<address2>) | |- Process Person(<address3>).ime | |- UOWTask(<address4>, Passport/Passport/None) (save/update phase) | | |- Process Person(<address3>).passport | | | |- UOWTask(<address5>, Entity/Entity/None) (contains cyclical sub-tasks) (save/update phase) | | |- Save (placeholder) | | | | | |- UOWTask(<address5>-><address6>, Person/Person/None) (save/update phase) | | | |- Save Person(<address3>) | | | |---- | | | | | | | | |- UOWTask(<address7>, Address/Address/None) (save/update phase) | | | | |- Process Person(<address3>).address | | | |---- | | | | | |---- | | | |---- | | |- UOWTask(<address4>, Passport/Passport/None) (delete phase) | | | |- UOWTask(<address5>, Entity/Entity/None) (contains cyclical sub-tasks) (delete phase) | | | | | |- UOWTask(<address7>, Address/Address/None) (delete phase) | | | |---- | | | | | | | | |- UOWTask(<address5>-><address6>, Person/Person/None) (delete phase) | | | |---- | | | | | |---- | | | |---- | |---- * SA: DEBUG (Name|Name) save_obj() start, batched * SA: INFO BEGIN * SA: DEBUG (Name|Name) save_obj() table 'Name' instance Name@<address2> identity (<class 'base.Name'>, (None,), None) * SA: INFO INSERT INTO "Name" (ime) VALUES (?) * SA: INFO ['Person0'] * SA: DEBUG execute() instances: Name@<address2>(Name.db_id)->Person@<address3>(Person.ime_id) ('1') * SA: DEBUG (Passport|Passport) save_obj() start, batched * SA: DEBUG (Entity|Entity) save_obj() start, batched * SA: DEBUG (Person|Person) save_obj() start, batched * SA: DEBUG (Person|Person) save_obj() table 'Entity' instance Person@<address3> identity (<class 'models.Person'>, (None,), None) * SA: DEBUG (Person|Person) Using polymorphic identity 'Person' for insert column 'atype' * SA: INFO INSERT INTO "Entity" (disabled, time_trans, time_valid, atype) VALUES (?, ?, ?, ?) * SA: INFO [0, None, None, 'Person'] * SA: DEBUG execute() instances: Person@<address3>(Entity.db_id)->Person@<address3>(Person.db_id) ('1') * SA: DEBUG (Person|Person) save_obj() table 'Person' instance Person@<address3> identity (<class 'models.Person'>, (1,), None) * SA: INFO INSERT INTO "Person" (ime_id, vazrast, address_id, egn, passport_id, snimka, db_id) VALUES (?, ?, ?, ?, ?, ?, ?) * SA: INFO [1, 10, None, '', None, None, 1] * SA: DEBUG execute() instances: Person@<address3>(Entity.db_id)->Person@<address3>(Person.db_id) ('1') * SA: DEBUG (Address|Address) save_obj() start, batched * SA: DEBUG (Address|Address) delete_obj() start * SA: DEBUG (Person|Person) delete_obj() start * SA: DEBUG (Entity|Entity) delete_obj() start * SA: DEBUG (Passport|Passport) delete_obj() start * SA: DEBUG (Name|Name) delete_obj() start * SA: INFO Execute Complete * SA: INFO COMMIT
uow.py
Description: application/python