From 52b5890f5237ad8859108de1e0757be2b3f354c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Suliga?= Date: Sun, 31 May 2015 20:15:45 +0200 Subject: [PATCH] [1.8.x] Fixed #24880 -- Added more explicit docs on select_for_update() on SQLite. Backport of d29ed3f355b0c57e7036807f1d54f33796d8d820 from master --- docs/ref/models/querysets.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 673037ec31..3fb73b89f2 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1510,14 +1510,17 @@ 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. -Evaluating a queryset with ``select_for_update()`` in autocommit mode is -a :exc:`~django.db.transaction.TransactionManagementError` error because the +Evaluating a queryset with ``select_for_update()`` in autocommit mode on +backends which support ``SELECT ... FOR UPDATE`` is a +:exc:`~django.db.transaction.TransactionManagementError` error because the rows are not locked in that case. If allowed, this would facilitate data corruption and could easily be caused by calling code that expects to be run in a transaction outside of one. Using ``select_for_update()`` on backends which do not support ``SELECT ... FOR UPDATE`` (such as SQLite) will have no effect. +``SELECT ... FOR UPDATE`` will not be added to the query, and an error isn't +raised if ``select_for_update()`` is used in autocommit mode. .. versionchanged:: 1.6.3