mirror of
https://github.com/django/django.git
synced 2024-12-22 09:05:43 +00:00
Updated docs after changing select_for_update() to raise NotSupportedError.
Follow up to 054a44d6f0
.
This commit is contained in:
parent
5dbf1c4b23
commit
2a6b4e6521
@ -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])
|
||||
|
Loading…
Reference in New Issue
Block a user