Skip to content

Commit

Permalink
[1.6.x] Documentation fixes for the select_for_update change.
Browse files Browse the repository at this point in the history
Refs #22343; thanks Tim Graham for the fixes.
  • Loading branch information
shaib committed Apr 10, 2014
1 parent 690a598 commit d5cef2a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion docs/ref/models/querysets.txt
Expand Up @@ -1314,7 +1314,7 @@ do not support ``nowait``, such as MySQL, will cause a
:exc:`~django.db.DatabaseError` to be raised. This is in order to prevent code
unexpectedly blocking.

Executing a queryset with ``select_for_update`` in autocommit mode is
Evaluating a queryset with ``select_for_update`` in autocommit mode is
an error because the rows are then not locked. If allowed, this would
facilitate data corruption, and could easily be caused by calling,
outside of any transaction, code that expects to be run in one.
Expand Down
14 changes: 7 additions & 7 deletions docs/releases/1.6.3.txt
Expand Up @@ -17,19 +17,19 @@ executed in autocommit mode, outside of a transaction. Before Django
lock records until the next write operation. Django 1.6 introduced
database-level autocommit; since then, execution in such a context
voids the effect of ``select_for_update()``. It is, therefore, assumed
now to be an error, and raises an exception.

This change may cause test failures if you use ``select_for_update()``
in a test class which is a subclass of
:class:`~django.test.TransactionTestCase` rather than
:class:`~django.test.TestCase`.
now to be an error and raises an exception.

This change was made because such errors can be caused by including an
app which expects global transactions (e.g. :setting:`ATOMIC_REQUESTS
<DATABASE-ATOMIC_REQUESTS>` set to True), or Django's old autocommit
<DATABASE-ATOMIC_REQUESTS>` set to ``True``), or Django's old autocommit
behavior, in a project which runs without them; and further, such
errors may manifest as data-corruption bugs.

This change may cause test failures if you use ``select_for_update()``
in a test class which is a subclass of
:class:`~django.test.TransactionTestCase` rather than
:class:`~django.test.TestCase`.

Other bugfixes and changes
==========================

Expand Down

0 comments on commit d5cef2a

Please sign in to comment.