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