From 03b6a5840e2e0193a21b10f3151c22e50178d9e7 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 4 May 2012 17:50:44 -0400 Subject: [PATCH] doc update regarding with_lockmode, [ticket:2440] --- lib/sqlalchemy/orm/__init__.py | 16 +++++++++------- lib/sqlalchemy/orm/query.py | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/sqlalchemy/orm/__init__.py b/lib/sqlalchemy/orm/__init__.py index 1c3554a5b9..bc3523fe28 100644 --- a/lib/sqlalchemy/orm/__init__.py +++ b/lib/sqlalchemy/orm/__init__.py @@ -404,12 +404,14 @@ def relationship(argument, secondary=None, **kwargs): :param innerjoin=False: when ``True``, joined eager loads will use an inner join to join against related tables instead of an outer join. The purpose - of this option is strictly one of performance, as inner joins - generally perform better than outer joins. This flag can - be set to ``True`` when the relationship references an object - via many-to-one using local foreign keys that are not nullable, - or when the reference is one-to-one or a collection that is - guaranteed to have one or at least one entry. + of this option is generally one of performance, as inner joins + generally perform better than outer joins. Another reason can be + the use of ``with_lockmode``, which does not support outer joins. + + This flag can be set to ``True`` when the relationship references an + object via many-to-one using local foreign keys that are not nullable, + or when the reference is one-to-one or a collection that is guaranteed + to have one or at least one entry. :param join_depth: when non-``None``, an integer value indicating how many levels @@ -1692,4 +1694,4 @@ def undefer_group(name): return strategies.UndeferGroupOption(name) from sqlalchemy import util as _sa_util -_sa_util.importlater.resolve_all() \ No newline at end of file +_sa_util.importlater.resolve_all() diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index 103b0a7956..cedaad3eff 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -1095,7 +1095,7 @@ class Query(object): ``'update_nowait'`` - passes ``for_update='nowait'``, which translates to ``FOR UPDATE NOWAIT`` (supported by Oracle, - PostgreSQL) + PostgreSQL 8.1 upwards) ``'read'`` - passes ``for_update='read'``, which translates to ``LOCK IN SHARE MODE`` (for MySQL), and ``FOR SHARE`` (for -- 2.47.3