summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/backends/oracle/base.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index 732f3ebba4..baa8486c50 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -36,6 +36,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
needs_datetime_string_cast = False
uses_custom_query_class = True
interprets_empty_strings_as_nulls = True
+ uses_savepoints = True
class DatabaseOperations(BaseDatabaseOperations):
@@ -151,6 +152,12 @@ WHEN (new.%(col_name)s IS NULL)
connection.cursor()
return connection.ops.regex_lookup(lookup_type)
+ def savepoint_create_sql(self, sid):
+ return "SAVEPOINT " + self.quote_name(sid)
+
+ def savepoint_rollback_sql(self, sid):
+ return "ROLLBACK TO SAVEPOINT " + self.quote_name(sid)
+
def sql_flush(self, style, tables, sequences):
# Return a list of 'TRUNCATE x;', 'TRUNCATE y;',
# 'TRUNCATE z;'... style SQL statements
@@ -309,6 +316,10 @@ class DatabaseWrapper(BaseDatabaseWrapper):
cursor = FormatStylePlaceholderCursor(self.connection)
return cursor
+ # Oracle doesn't support savepoint commits. Ignore them.
+ def _savepoint_commit(self, sid):
+ pass
+
class OracleParam(object):
"""