Stopped flipping the uses_savepoints feature at runtime.
This commit is contained in:
parent
af9e9386eb
commit
cd364efa00
|
@ -161,17 +161,17 @@ class BaseDatabaseWrapper(object):
|
|||
##### Backend-specific savepoint management methods #####
|
||||
|
||||
def _savepoint(self, sid):
|
||||
if not self.features.uses_savepoints:
|
||||
if not self.features.uses_savepoints or self.autocommit:
|
||||
return
|
||||
self.cursor().execute(self.ops.savepoint_create_sql(sid))
|
||||
|
||||
def _savepoint_rollback(self, sid):
|
||||
if not self.features.uses_savepoints:
|
||||
if not self.features.uses_savepoints or self.autocommit:
|
||||
return
|
||||
self.cursor().execute(self.ops.savepoint_rollback_sql(sid))
|
||||
|
||||
def _savepoint_commit(self, sid):
|
||||
if not self.features.uses_savepoints:
|
||||
if not self.features.uses_savepoints or self.autocommit:
|
||||
return
|
||||
self.cursor().execute(self.ops.savepoint_commit_sql(sid))
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
|
|||
has_select_for_update = True
|
||||
has_select_for_update_nowait = True
|
||||
has_bulk_insert = True
|
||||
uses_savepoints = True
|
||||
supports_tablespaces = True
|
||||
supports_transactions = True
|
||||
can_distinct_on_fields = True
|
||||
|
@ -88,8 +89,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||
self.introspection = DatabaseIntrospection(self)
|
||||
self.validation = BaseDatabaseValidation(self)
|
||||
|
||||
self.features.uses_savepoints = False
|
||||
|
||||
def get_connection_params(self):
|
||||
settings_dict = self.settings_dict
|
||||
if not settings_dict['NAME']:
|
||||
|
@ -174,7 +173,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||
self.cursor().close()
|
||||
if managed and self.autocommit:
|
||||
self.set_autocommit(False)
|
||||
self.features.uses_savepoints = True
|
||||
|
||||
def _leave_transaction_management(self, managed):
|
||||
"""
|
||||
|
@ -186,7 +184,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||
if not managed and not self.autocommit:
|
||||
self.rollback() # Must terminate transaction first.
|
||||
self.set_autocommit(True)
|
||||
self.features.uses_savepoints = False
|
||||
|
||||
def _set_isolation_level(self, isolation_level):
|
||||
assert isolation_level in range(1, 5) # Use set_autocommit for level = 0
|
||||
|
|
Loading…
Reference in New Issue