diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-02-04 21:47:42 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-02-04 21:47:42 +0000 |
commit | bb1dd85dcc123a60ab5fdc0d3a61641703d91948 (patch) | |
tree | 55c7eeae006a127a79fd7af8088c7934bb653019 /lib/sqlalchemy/sql/compiler.py | |
parent | 0de289921c4d52798248cfacbacc04ccad12cec9 (diff) | |
download | sqlalchemy-bb1dd85dcc123a60ab5fdc0d3a61641703d91948.tar.gz |
- add dummy column to appease older SQLite verisons in unicode.py
- add test "escape_literal_column" comiler method to start addressing literal '%' character
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 8 |
1 files changed, 6 insertions, 2 deletions
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 |