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

Attachment: uow.py
Description: application/python

Reply via email to