]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
- added "pickleable" module to test suite to have cPickle-compatible
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 23 Sep 2006 20:26:20 +0000 (20:26 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 23 Sep 2006 20:26:20 +0000 (20:26 +0000)
commit7d74fc7785832ebd3bf39c9e42465e2d22b0c9e2
treecf20c329d7f577ec7fc1846dd393b5adbf592f38
parent68e893d21af31edd2bbc6dec608c95457eaffde6
- added "pickleable" module to test suite to have cPickle-compatible
test objects
- added copy_function, compare_function arguments to InstrumentedAttribute
- added MutableType mixin, copy_value/compare_values methods to TypeEngine,
PickleType
- ColumnProperty and DeferredProperty propigate the TypeEngine copy/compare
methods to the attribute instrumentation
- cleanup of UnitOfWork, removed unused methods
- UnitOfWork "dirty" list is calculated across the total collection of persistent
objects when called, no longer has register_dirty.
- attribute system can still report "modified" status fairly quickly, but does
extra work for InstrumentedAttributes that have detected a "mutable" type where
catching the __set__() event is not enough (i.e. PickleTypes)
- attribute tracking modified to be more intelligent about detecting
changes, particularly with mutable types.  TypeEngine objects now
take a greater role in defining how to compare two scalar instances,
including the addition of a MutableType mixin which is implemented by
PickleType.  unit-of-work now tracks the "dirty" list as an expression
of all persistent objects where the attribute manager detects changes.
The basic issue thats fixed is detecting changes on PickleType
objects, but also generalizes type handling and "modified" object
checking to be more complete and extensible.
14 files changed:
CHANGES
doc/build/content/unitofwork.txt
lib/sqlalchemy/attributes.py
lib/sqlalchemy/orm/__init__.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/properties.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/unitofwork.py
lib/sqlalchemy/types.py
test/base/attributes.py
test/orm/cycles.py
test/orm/unitofwork.py
test/pickleable.py [new file with mode: 0644]
test/sql/testtypes.py