summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-03-23 23:09:26 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-04-10 20:16:12 +0200
commit3becac84845cee8f12a5fb7f68c87cbaf029c6a0 (patch)
treed3e9681c0bc3a699649cc41428ac8edbf3123b3f
parentd5031ecf881eaefe7ada1c35228b35a1852dd343 (diff)
Fixed #22321 -- Wrapped exceptions in _set_autocommit.
Refs #21202.
-rw-r--r--django/db/backends/mysql/base.py3
-rw-r--r--django/db/backends/oracle/base.py3
-rw-r--r--django/db/backends/postgresql_psycopg2/base.py15
-rw-r--r--django/db/backends/sqlite3/base.py3
4 files changed, 14 insertions, 10 deletions
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index cbe37fc84c..85bcd8f79b 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -488,7 +488,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
pass
def _set_autocommit(self, autocommit):
- self.connection.autocommit(autocommit)
+ with self.wrap_database_errors:
+ self.connection.autocommit(autocommit)
def disable_constraint_checking(self):
"""
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index da0fdb121f..01f4960470 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -687,7 +687,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
pass
def _set_autocommit(self, autocommit):
- self.connection.autocommit = autocommit
+ with self.wrap_database_errors:
+ self.connection.autocommit = autocommit
def check_constraints(self, table_names=None):
"""
diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py
index 47bcf2f41a..68cc5b121e 100644
--- a/django/db/backends/postgresql_psycopg2/base.py
+++ b/django/db/backends/postgresql_psycopg2/base.py
@@ -189,14 +189,15 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.connection.set_isolation_level(isolation_level)
def _set_autocommit(self, autocommit):
- if self.psycopg2_version >= (2, 4, 2):
- self.connection.autocommit = autocommit
- else:
- if autocommit:
- level = psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT
+ with self.wrap_database_errors:
+ if self.psycopg2_version >= (2, 4, 2):
+ self.connection.autocommit = autocommit
else:
- level = self.isolation_level
- self.connection.set_isolation_level(level)
+ if autocommit:
+ level = psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT
+ else:
+ level = self.isolation_level
+ self.connection.set_isolation_level(level)
def check_constraints(self, table_names=None):
"""
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 9709e8449f..d594b89ef8 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -411,7 +411,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
level = ''
# 'isolation_level' is a misleading API.
# SQLite always runs at the SERIALIZABLE isolation level.
- self.connection.isolation_level = level
+ with self.wrap_database_errors:
+ self.connection.isolation_level = level
def check_constraints(self, table_names=None):
"""