[sqlalchemy] Re: session.flush calls commit, and Binary issue

2006-11-15 Thread Michael Bayer
flush() starts its own transaction and commits it. if you have already opened a transaction on the current session, then it will nest inside the larger transaction. see the SessionTransaction documentation for details. Also, the pickle type not getting updated is something that was fixed in

[sqlalchemy] Re: session.flush calls commit, and Binary issue

2006-11-15 Thread bkc
I am using PickleType, and Binary on the same table.. I'll see if I can come up with a small test. These fields are being written back every time any other field changes, even when they haven't changed. Regarding transactions. I thought session.flush was just UOW work and didn't actually do

[sqlalchemy] Re: session.flush calls commit, and Binary issue

2006-11-15 Thread Michael Bayer
let me tell you how pickletype works right now (by default, you can change it). there is a method on all TypeEngine objects called compare_values(). this method is now used by the attributes package when it checks if something changed. in most cases, the method uses a the == comparison. In the