Commit d4a34b55 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

[1.1.X] Fixed #11623 -- Corrected table name quoting in db cache backend....

[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
parent a9282168
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
+2 −2
Original line number Diff line number Diff line
@@ -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)]
+5 −3
Original line number Diff line number Diff line
@@ -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):