summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-02-20 09:42:47 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2012-02-20 09:42:47 -0500
commit509c81d736c5d80e82e55629aebc1dedd86370f7 (patch)
treed0b72f23d621cb1d329b7346ef242826a203641a /lib/sqlalchemy
parent35cba3c84ab9c36663e57049e56e59cace5aa2f7 (diff)
downloadsqlalchemy-509c81d736c5d80e82e55629aebc1dedd86370f7.tar.gz
document with_lockmode(), [ticket:2412]
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/query.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index e012cd9b0..cafce5e3c 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -1036,7 +1036,22 @@ class Query(object):
@_generative()
def with_lockmode(self, mode):
- """Return a new Query object with the specified locking mode."""
+ """Return a new Query object with the specified locking mode.
+
+ :param mode: a string representing the desired locking mode. A
+ corresponding value is passed to the ``for_update`` parameter of
+ :meth:`~sqlalchemy.sql.expression.select` when the query is
+ executed. Valid values are:
+
+ ``'update'`` - passes ``for_update=True``, which translates to
+ ``FOR UPDATE`` (standard SQL, supported by most dialects)
+
+ ``'update_nowait'`` - passes ``for_update='nowait'``, which
+ translates to ``FOR UPDATE NOWAIT`` (supported by Oracle)
+
+ ``'read'`` - passes ``for_update='read'``, which translates to
+ ``LOCK IN SHARE MODE`` (supported by MySQL).
+ """
self._lockmode = mode