Commit cd364efa authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Stopped flipping the uses_savepoints feature at runtime.

parent af9e9386
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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))

+1 −4
Original line number Diff line number Diff line
@@ -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