Hi,
I am using sqlalchemy 0.6.3-3 with python 2.6.6 and sqlite 3.7.3 (all from 
debian squeeze packages).

In an M:N relation i have e.g. following objects:

obj1
obj2

and want to store a list like
[obj1, obj2, obj1, obj2]

in another object (yes, a list with duplicates, that in best case maintains 
order).

My assumption was that is a "normal" M:N relation. However, sqlalchemy will 
condense the list to contain (rferences to) each object only once (i.e. 
[obj1, obj2, obj1, obj2] -> [obj1, obj2]) in a session.

This changes the list at runtime when a Session.commit() is issued.

Interestingly, when adding a list as shown above, mutliple links are added to 
the "secondary" table and the debug output shows me that the query to 
retrieve the objects also results in these multiple links. Smells like a bug 
at either end to me.

Describing my problem was difficult, I have attached a "minimal" example to 
demonstrate this behaviour. Reading and running the code should make the 
problem clear (before commit: 6 items in list, after commit and with query: 3 
items in list).
The example can also be found at
http://codetidy.com/691 .

Is there a standard way to approach settings like mine?

Probably related pointer from "nickph" in #sqlalchemy on irc (freenode):
(10:59:38)  nickph:  
http://hg.sqlalchemy.org/sqlalchemy/file/23be17cf5025/CHANGES 
(10:59:48)  nickph:  "Duplicate items in a list-based collection will be 
maintained"...

Enjoy,

--felix

-- 
Felix Wolfsteller |  ++49 541 335083-783  |  http://www.intevation.de/
PGP Key: 39DE0100
Intevation GmbH, Neuer Graben 17, 49074 Osnabrück | AG Osnabrück, HR B 18998
Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
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.

Attachment: data.py
Description: application/python

Reply via email to