Kaydet (Commit) 2a6b4e65 authored tarafından Ran Benita's avatar Ran Benita Kaydeden (comit) Tim Graham

Updated docs after changing select_for_update() to raise NotSupportedError.

Follow up to 054a44d6.
üst 5dbf1c4b
......@@ -569,7 +569,8 @@ Row locking with ``QuerySet.select_for_update()``
MySQL does not support the ``NOWAIT`` and ``SKIP LOCKED`` options to the
``SELECT ... FOR UPDATE`` statement. If ``select_for_update()`` is used with
``nowait=True`` or ``skip_locked=True`` then a ``DatabaseError`` will be raised.
``nowait=True`` or ``skip_locked=True``, then a
:exc:`~django.db.NotSupportedError` is raised.
Automatic typecasting can cause unexpected results
--------------------------------------------------
......
......@@ -1640,8 +1640,8 @@ backends support ``select_for_update()``. However, MySQL doesn't support the
``nowait`` and ``skip_locked`` arguments.
Passing ``nowait=True`` or ``skip_locked=True`` to ``select_for_update()``
using database backends that do not support these options, such as MySQL, will
cause a :exc:`~django.db.DatabaseError` to be raised. This prevents code from
using database backends that do not support these options, such as MySQL,
raises a :exc:`~django.db.NotSupportedError`. This prevents code from
unexpectedly blocking.
Evaluating a queryset with ``select_for_update()`` in autocommit mode on
......
......@@ -134,7 +134,7 @@ class SelectForUpdateTests(TransactionTestCase):
@skipUnlessDBFeature('has_select_for_update')
def test_unsupported_nowait_raises_error(self):
"""
DatabaseError is raised if a SELECT...FOR UPDATE NOWAIT is run on
NotSupportedError is raised if a SELECT...FOR UPDATE NOWAIT is run on
a database backend that supports FOR UPDATE but not NOWAIT.
"""
with self.assertRaisesMessage(NotSupportedError, 'NOWAIT is not supported on this database backend.'):
......@@ -145,8 +145,8 @@ class SelectForUpdateTests(TransactionTestCase):
@skipUnlessDBFeature('has_select_for_update')
def test_unsupported_skip_locked_raises_error(self):
"""
DatabaseError is raised if a SELECT...FOR UPDATE SKIP LOCKED is run on
a database backend that supports FOR UPDATE but not SKIP LOCKED.
NotSupportedError is raised if a SELECT...FOR UPDATE SKIP LOCKED is run
on a database backend that supports FOR UPDATE but not SKIP LOCKED.
"""
with self.assertRaisesMessage(NotSupportedError, 'SKIP LOCKED is not supported on this database backend.'):
with transaction.atomic():
......@@ -189,7 +189,7 @@ class SelectForUpdateTests(TransactionTestCase):
@skipIfDBFeature('supports_select_for_update_with_limit')
def test_unsupported_select_for_update_with_limit(self):
msg = 'LIMIT/OFFSET not supported with select_for_update on this database backend.'
msg = 'LIMIT/OFFSET is not supported with select_for_update on this database backend.'
with self.assertRaisesMessage(NotSupportedError, msg):
with transaction.atomic():
list(Person.objects.all().order_by('pk').select_for_update()[1:2])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment