summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2016-08-11 11:45:03 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-08-11 11:45:03 -0400
commit09cf0376524dc0bac6c1ab05d3c43cdd29c362b1 (patch)
tree7de5cac7f40d9af8eeb131a6223cda73756ccfb7
parentf2fa9d000b44a54b0fd3ae6114eb5d53ef20c3b8 (diff)
downloadsqlalchemy-09cf0376524dc0bac6c1ab05d3c43cdd29c362b1.tar.gz
- small updates to polymorphic eager loading, cross-link from
loading documentation Change-Id: I3ce7e2cc521c4dd155195819a919017d4cc63b3c
-rw-r--r--doc/build/orm/inheritance.rst9
-rw-r--r--doc/build/orm/loading_relationships.rst8
-rw-r--r--lib/sqlalchemy/orm/util.py10
3 files changed, 14 insertions, 13 deletions
diff --git a/doc/build/orm/inheritance.rst b/doc/build/orm/inheritance.rst
index f640973c4..fb4de7df3 100644
--- a/doc/build/orm/inheritance.rst
+++ b/doc/build/orm/inheritance.rst
@@ -500,7 +500,7 @@ can be loaded::
manager_and_engineer = with_polymorphic(
Employee, [Manager, Engineer],
- aliased=True)
+ flat=True)
session.query(Company).\
options(
@@ -508,13 +508,6 @@ can be loaded::
)
)
-.. versionadded:: 0.8
- :func:`.joinedload`, :func:`.subqueryload`, :func:`.contains_eager`
- and related loader options support
- paths that are qualified with
- :func:`~sqlalchemy.orm.interfaces.PropComparator.of_type`, supporting
- single target types as well as :func:`.orm.with_polymorphic` targets.
-
Another option for the above query is to state the two subtypes separately;
the :func:`.joinedload` directive should detect this and create the
above ``with_polymorphic`` construct automatically::
diff --git a/doc/build/orm/loading_relationships.rst b/doc/build/orm/loading_relationships.rst
index 941edce2c..ba5f23aa3 100644
--- a/doc/build/orm/loading_relationships.rst
+++ b/doc/build/orm/loading_relationships.rst
@@ -178,6 +178,14 @@ of a particular attribute, the :func:`.defaultload` method/function may be used:
as well as the ``_all()`` functions will remain available for backwards-
compatibility indefinitely.
+Polymorphic Eager Loading
+-------------------------
+
+Specification of polymorpic options on a per-eager-load basis is supported.
+See the section :ref:`eagerloading_polymorphic_subtypes` for examples
+of the :meth:`.PropComparator.of_type` method in conjunction with the
+:func:`.orm.with_polymorphic` function.
+
Default Loading Strategies
--------------------------
diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py
index f76be0380..afd2f9997 100644
--- a/lib/sqlalchemy/orm/util.py
+++ b/lib/sqlalchemy/orm/util.py
@@ -692,11 +692,11 @@ def with_polymorphic(base, classes, selectable=False,
versions of MySQL.
:param flat: Boolean, will be passed through to the
- :meth:`.FromClause.alias` call so that aliases of :class:`.Join`
- objects don't include an enclosing SELECT. This can lead to more
- efficient queries in many circumstances. A JOIN against a nested JOIN
- will be rewritten as a JOIN against an aliased SELECT subquery on
- backends that don't support this syntax.
+ :meth:`.FromClause.alias` call so that aliases of :class:`.Join`
+ objects don't include an enclosing SELECT. This can lead to more
+ efficient queries in many circumstances. A JOIN against a nested JOIN
+ will be rewritten as a JOIN against an aliased SELECT subquery on
+ backends that don't support this syntax.
Setting ``flat`` to ``True`` implies the ``aliased`` flag is
also ``True``.