summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-02-11 13:11:47 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-02-11 13:11:47 +0000
commitd4a34b5508a73c47d9e7220ee92dd7b8fb9e4262 (patch)
tree2ea949896c6ca1aa02ef0d4d46e35298d5ee77c2
parenta9282168f5952cfb5c7008c603aed78aaff142b2 (diff)
[1.1.X] Fixed #11623 -- Corrected table name quoting in db cache backend. Thanks to Fraser Nevett for the report and fix.
Backport of r12410 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12414 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/core/cache/backends/db.py2
-rw-r--r--django/core/management/commands/createcachetable.py4
-rw-r--r--tests/regressiontests/cache/tests.py8
3 files changed, 8 insertions, 6 deletions
diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py
index 1853db097f..4a9bc75a11 100644
--- a/django/core/cache/backends/db.py
+++ b/django/core/cache/backends/db.py
@@ -12,7 +12,7 @@ except ImportError:
class CacheClass(BaseCache):
def __init__(self, table, params):
BaseCache.__init__(self, params)
- self._table = table
+ self._table = connection.ops.quote_name(table)
max_entries = params.get('max_entries', 300)
try:
self._max_entries = int(max_entries)
diff --git a/django/core/management/commands/createcachetable.py b/django/core/management/commands/createcachetable.py
index 098bca793f..9a7e7a71c3 100644
--- a/django/core/management/commands/createcachetable.py
+++ b/django/core/management/commands/createcachetable.py
@@ -27,8 +27,8 @@ class Command(LabelCommand):
field_output.append("UNIQUE")
if f.db_index:
unique = f.unique and "UNIQUE " or ""
- index_output.append("CREATE %sINDEX %s_%s ON %s (%s);" % \
- (unique, tablename, f.name, qn(tablename),
+ index_output.append("CREATE %sINDEX %s ON %s (%s);" % \
+ (unique, qn('%s_%s' % (tablename, f.name)), qn(tablename),
qn(f.name)))
table_output.append(" ".join(field_output))
full_statement = ["CREATE TABLE %s (" % qn(tablename)]
diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py
index 64f6130860..9a84667085 100644
--- a/tests/regressiontests/cache/tests.py
+++ b/tests/regressiontests/cache/tests.py
@@ -296,13 +296,15 @@ class BaseCacheTests(object):
class DBCacheTests(unittest.TestCase, BaseCacheTests):
def setUp(self):
- management.call_command('createcachetable', 'test_cache_table', verbosity=0, interactive=False)
- self.cache = get_cache('db://test_cache_table')
+ # Spaces are used in the table name to ensure quoting/escaping is working
+ self._table_name = 'test cache table'
+ management.call_command('createcachetable', self._table_name, verbosity=0, interactive=False)
+ self.cache = get_cache('db://%s' % self._table_name)
def tearDown(self):
from django.db import connection
cursor = connection.cursor()
- cursor.execute('DROP TABLE test_cache_table');
+ cursor.execute('DROP TABLE %s' % connection.ops.quote_name(self._table_name))
class LocMemCacheTests(unittest.TestCase, BaseCacheTests):
def setUp(self):