]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Merge existing query params in baked lazy load
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 26 Feb 2018 00:54:37 +0000 (19:54 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 28 Feb 2018 15:52:59 +0000 (10:52 -0500)
commit4a31c30fa5ebd6af0e72937b21b2e5ee79e12631
tree289f52c9255b6406fb1cdc335c20c7e3b65e409d
parenta10bc4fdaa8ff95a2b7930622cb76a1aa07806f1
Merge existing query params in baked lazy load

Fixed a long-standing regression that occurred in version
1.0, which prevented the use of a custom :class:`.MapperOption`
that alters the _params of a :class:`.Query` object for a
lazy load, since the lazy loader itself would overwrite those
parameters.   This applies to the "temporal range" example
on the wiki.  Note however that the
:meth:`.Query.populate_existing` method is now required in
order to rewrite the mapper options associated with an object
already loaded in the identity map.  Also, a custom defined
:class:`.MapperOption` will now cause lazy loaders related to
the target object to use a non-baked query by default unless
the :meth:`.MapperOption._generate_cache_key` method is implemented.

Fixed bug where the new :meth:`.baked.Result.with_post_criteria`
method would not interact with a subquery-eager loader correctly,
in that the "post criteria" would not be applied to embedded
subquery eager loaders.   This is related to :ticket:`4128` in that
the post criteria feature is now used by the lazy loader.

Change-Id: I899808734458e25a023142c2c5bb37cbed869479
Fixes: #4128
doc/build/changelog/unreleased_12/4128.rst [new file with mode: 0644]
doc/build/changelog/unreleased_12/post_criteria_subqueryload.rst [new file with mode: 0644]
lib/sqlalchemy/ext/baked.py
lib/sqlalchemy/orm/interfaces.py
lib/sqlalchemy/orm/strategies.py
test/ext/test_baked.py
test/orm/test_lazy_relations.py