From bb1dd85dcc123a60ab5fdc0d3a61641703d91948 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 4 Feb 2008 21:47:42 +0000 Subject: - add dummy column to appease older SQLite verisons in unicode.py - add test "escape_literal_column" comiler method to start addressing literal '%' character --- lib/sqlalchemy/sql/compiler.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/sqlalchemy/sql') diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 71bfd1765..5cfb42a63 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -269,16 +269,20 @@ class DefaultCompiler(engine.Compiled): return None elif column.table is None or not column.table.named_with_column: if getattr(column, "is_literal", False): - return name + return self.escape_literal_column(name) else: return self.preparer.quote(column, name) else: if getattr(column, "is_literal", False): - return self.preparer.quote(column.table, ANONYMOUS_LABEL.sub(self._process_anon, column.table.name)) + "." + name + return self.preparer.quote(column.table, ANONYMOUS_LABEL.sub(self._process_anon, column.table.name)) + "." + self.escape_literal_column(name) else: return self.preparer.quote(column.table, ANONYMOUS_LABEL.sub(self._process_anon, column.table.name)) + "." + self.preparer.quote(column, name) + def escape_literal_column(self, text): + """provide escaping for the literal_column() construct.""" + return re.sub('%', '%%', text) + def visit_fromclause(self, fromclause, **kwargs): return fromclause.name -- cgit v1.2.1