]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
- merge() will not issue a needless merge of attributes if the
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 10 Jan 2010 21:21:45 +0000 (21:21 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 10 Jan 2010 21:21:45 +0000 (21:21 +0000)
commitb729503a3e1165dc37fb5ac4746226761e86fd51
tree9161970621c976498bc8c52068227c4da9273e25
parent517ed6b7ceb84ee19e43b371d946c7bba4d55ce0
- merge() will not issue a needless merge of attributes if the
given instance is the same instance which is already present.

- merge() now also merges the "options" associated with a given
state, i.e. those passed through query.options() which follow
along with an instance, such as options to eagerly- or
lazyily- load various attributes.   This is essential for
the construction of highly integrated caching schemes.  This
is a subtle behavioral change vs. 0.5.

- A bug was fixed regarding the serialization of the "loader
path" present on an instance's state, which is also necessary
when combining the usage of merge() with serialized state
and associated options that should be preserved.

- The "query_cache" examples have been removed, and are replaced
with a fully comprehensive approach that combines the usage of
Beaker with SQLAlchemy.  New query options are used to indicate
the caching characteristics of a particular Query, which
can also be invoked deep within an object graph when lazily
loading related objects.  See /examples/beaker_caching/README.
17 files changed:
CHANGES
examples/beaker_caching/README [new file with mode: 0644]
examples/beaker_caching/__init__.py [new file with mode: 0644]
examples/beaker_caching/ad_hoc.py [new file with mode: 0644]
examples/beaker_caching/demo.py [new file with mode: 0644]
examples/beaker_caching/fixture_data.py [new file with mode: 0644]
examples/beaker_caching/meta.py [new file with mode: 0644]
examples/beaker_caching/model.py [new file with mode: 0644]
examples/query_caching/__init__.py [deleted file]
examples/query_caching/implicit.py [deleted file]
examples/query_caching/per_session.py [deleted file]
examples/query_caching/query_caching.py [deleted file]
lib/sqlalchemy/orm/interfaces.py
lib/sqlalchemy/orm/session.py
test/aaa_profiling/test_orm.py
test/orm/test_merge.py
test/orm/test_pickled.py