summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2018-10-25 19:54:48 -0400
committerGitHub <noreply@github.com>2018-10-25 19:54:48 -0400
commit717ee63e5615a6c3a018351a07028513f9b01f0b (patch)
treebbb2a92206b22846842106a3c34df841ee840fab /django
parentc6525bea9ec3d1d1e73585ca6e3116bb55afb336 (diff)
Refs #27025 -- Removed obsolete sqlite3 transaction management workaround for Python 3.6+.
Obsolete per https://bugs.python.org/issue10740#msg274816.
Diffstat (limited to 'django')
-rw-r--r--django/db/backends/base/base.py11
-rw-r--r--django/db/backends/sqlite3/features.py4
-rw-r--r--django/db/transaction.py4
3 files changed, 6 insertions, 13 deletions
diff --git a/django/db/backends/base/base.py b/django/db/backends/base/base.py
index c8c18f5b19..f97d171c96 100644
--- a/django/db/backends/base/base.py
+++ b/django/db/backends/base/base.py
@@ -395,7 +395,7 @@ class BaseDatabaseWrapper:
start_transaction_under_autocommit = (
force_begin_transaction_with_broken_autocommit and not autocommit and
- self.features.autocommits_when_autocommit_is_off
+ hasattr(self, '_start_transaction_under_autocommit')
)
if start_transaction_under_autocommit:
@@ -595,15 +595,6 @@ class BaseDatabaseWrapper:
allow_thread_sharing=False,
)
- def _start_transaction_under_autocommit(self):
- """
- Only required when autocommits_when_autocommit_is_off = True.
- """
- raise NotImplementedError(
- 'subclasses of BaseDatabaseWrapper may require a '
- '_start_transaction_under_autocommit() method'
- )
-
def schema_editor(self, *args, **kwargs):
"""
Return a new instance of this backend's SchemaEditor.
diff --git a/django/db/backends/sqlite3/features.py b/django/db/backends/sqlite3/features.py
index c56a393772..efb9413119 100644
--- a/django/db/backends/sqlite3/features.py
+++ b/django/db/backends/sqlite3/features.py
@@ -1,3 +1,5 @@
+import sys
+
from django.db import utils
from django.db.backends.base.features import BaseDatabaseFeatures
from django.utils.functional import cached_property
@@ -13,7 +15,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
supports_timezones = False
max_query_params = 999
supports_mixed_date_datetime_comparisons = False
- autocommits_when_autocommit_is_off = True
+ autocommits_when_autocommit_is_off = sys.version_info < (3, 6)
can_introspect_decimal_field = False
can_introspect_duration_field = False
can_introspect_positive_integer_field = True
diff --git a/django/db/transaction.py b/django/db/transaction.py
index 39c3402925..901d8b62e7 100644
--- a/django/db/transaction.py
+++ b/django/db/transaction.py
@@ -173,8 +173,8 @@ class Atomic(ContextDecorator):
connection.commit_on_exit = True
connection.needs_rollback = False
if not connection.get_autocommit():
- # Some database adapters (namely sqlite3) don't handle
- # transactions and savepoints properly when autocommit is off.
+ # sqlite3 in Python < 3.6 doesn't handle transactions and
+ # savepoints properly when autocommit is off.
# Turning autocommit back on isn't an option; it would trigger
# a premature commit. Give up if that happens.
if connection.features.autocommits_when_autocommit_is_off: