Commit 9a5942cd authored by Ian Kelly's avatar Ian Kelly
Browse files

[1.0.X] Backport of 10022 from trunk. Added savepoint support to the Oracle...

[1.0.X] Backport of 10022 from trunk. Added savepoint support to the Oracle backend, necessary per the thread at http://groups.google.com/group/django-developers/browse_thread/thread/c87cf2d97478c068/

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10023 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 6ab4b64b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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):
@@ -147,6 +148,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
@@ -293,6 +300,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):
    """