1
0
mirror of https://github.com/django/django.git synced 2025-07-18 16:49:13 +00:00

[1.0.X] Fixed #10488: fixed DB cache backend test failures in Oracle. Backport of [10051] from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10052 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Ian Kelly 2009-03-13 21:07:41 +00:00
parent 0ced9f68f3
commit 0eac35ce11
3 changed files with 14 additions and 1 deletions

View File

@ -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)

View File

@ -212,6 +212,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 query_class(self, DefaultQueryClass):
"""
Given the default Query class, returns a custom Query class

View File

@ -115,6 +115,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)