Commit 83c1572c authored by Ian Kelly's avatar Ian Kelly
Browse files

Fixed #10488: fixed DB cache backend test failures in Oracle.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10051 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 0ae95f80
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ class CacheClass(BaseCache):
            cursor.execute("DELETE FROM %s WHERE cache_key = %%s" % self._table, [key])
            transaction.commit_unless_managed()
            return default
        return pickle.loads(base64.decodestring(row[1]))
        value = connection.ops.process_clob(row[1])
        return pickle.loads(base64.decodestring(value))

    def set(self, key, value, timeout=None):
        self._base_set('set', key, value, timeout)
+7 −0
Original line number Diff line number Diff line
@@ -255,6 +255,13 @@ class BaseDatabaseOperations(object):
        """
        return 'DEFAULT'

    def process_clob(self, value):
        """
        Returns the value of a CLOB column, for backends that return a locator
        object that requires additional processing.
        """
        return value

    def return_insert_id(self):
        """
        For backends that support returning the last insert ID as part
+5 −0
Original line number Diff line number Diff line
@@ -123,6 +123,11 @@ WHEN (new.%(col_name)s IS NULL)
    def prep_for_iexact_query(self, x):
        return x

    def process_clob(self, value):
        if value is None:
            return u''
        return force_unicode(value.read())

    def query_class(self, DefaultQueryClass):
        return query.query_class(DefaultQueryClass, Database)