diff options
| author | Tim Graham <timograham@gmail.com> | 2018-10-25 19:54:48 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-25 19:54:48 -0400 |
| commit | 717ee63e5615a6c3a018351a07028513f9b01f0b (patch) | |
| tree | bbb2a92206b22846842106a3c34df841ee840fab /django | |
| parent | c6525bea9ec3d1d1e73585ca6e3116bb55afb336 (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.py | 11 | ||||
| -rw-r--r-- | django/db/backends/sqlite3/features.py | 4 | ||||
| -rw-r--r-- | django/db/transaction.py | 4 |
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: |
