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 #####
|
##### Backend-specific savepoint management methods #####
|
||||||
|
|
||||||
def _savepoint(self, sid):
|
def _savepoint(self, sid):
|
||||||
if not self.features.uses_savepoints:
|
if not self.features.uses_savepoints or self.autocommit:
|
||||||
return
|
return
|
||||||
self.cursor().execute(self.ops.savepoint_create_sql(sid))
|
self.cursor().execute(self.ops.savepoint_create_sql(sid))
|
||||||
|
|
||||||
def _savepoint_rollback(self, sid):
|
def _savepoint_rollback(self, sid):
|
||||||
if not self.features.uses_savepoints:
|
if not self.features.uses_savepoints or self.autocommit:
|
||||||
return
|
return
|
||||||
self.cursor().execute(self.ops.savepoint_rollback_sql(sid))
|
self.cursor().execute(self.ops.savepoint_rollback_sql(sid))
|
||||||
|
|
||||||
def _savepoint_commit(self, sid):
|
def _savepoint_commit(self, sid):
|
||||||
if not self.features.uses_savepoints:
|
if not self.features.uses_savepoints or self.autocommit:
|
||||||
return
|
return
|
||||||
self.cursor().execute(self.ops.savepoint_commit_sql(sid))
|
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 = True
|
||||||
has_select_for_update_nowait = True
|
has_select_for_update_nowait = True
|
||||||
has_bulk_insert = True
|
has_bulk_insert = True
|
||||||
|
uses_savepoints = True
|
||||||
supports_tablespaces = True
|
supports_tablespaces = True
|
||||||
supports_transactions = True
|
supports_transactions = True
|
||||||
can_distinct_on_fields = True
|
can_distinct_on_fields = True
|
||||||
|
@ -88,8 +89,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
||||||
self.introspection = DatabaseIntrospection(self)
|
self.introspection = DatabaseIntrospection(self)
|
||||||
self.validation = BaseDatabaseValidation(self)
|
self.validation = BaseDatabaseValidation(self)
|
||||||
|
|
||||||
self.features.uses_savepoints = False
|
|
||||||
|
|
||||||
def get_connection_params(self):
|
def get_connection_params(self):
|
||||||
settings_dict = self.settings_dict
|
settings_dict = self.settings_dict
|
||||||
if not settings_dict['NAME']:
|
if not settings_dict['NAME']:
|
||||||
|
@ -174,7 +173,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
||||||
self.cursor().close()
|
self.cursor().close()
|
||||||
if managed and self.autocommit:
|
if managed and self.autocommit:
|
||||||
self.set_autocommit(False)
|
self.set_autocommit(False)
|
||||||
self.features.uses_savepoints = True
|
|
||||||
|
|
||||||
def _leave_transaction_management(self, managed):
|
def _leave_transaction_management(self, managed):
|
||||||
"""
|
"""
|
||||||
|
@ -186,7 +184,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
||||||
if not managed and not self.autocommit:
|
if not managed and not self.autocommit:
|
||||||
self.rollback() # Must terminate transaction first.
|
self.rollback() # Must terminate transaction first.
|
||||||
self.set_autocommit(True)
|
self.set_autocommit(True)
|
||||||
self.features.uses_savepoints = False
|
|
||||||
|
|
||||||
def _set_isolation_level(self, isolation_level):
|
def _set_isolation_level(self, isolation_level):
|
||||||
assert isolation_level in range(1, 5) # Use set_autocommit for level = 0
|
assert isolation_level in range(1, 5) # Use set_autocommit for level = 0
|
||||||
|
|
Loading…
Reference in New Issue