diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-08-10 04:48:00 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-08-10 04:48:00 +0000 |
commit | c3bdad10a384f779624f015a34ada785ad2dedf5 (patch) | |
tree | 3c7b7564dd93482cdb63eb205d6f80622f599fba /lib/sqlalchemy/sql/compiler.py | |
parent | d564baf593311ca5bc62dbc401e57986bf9169ba (diff) | |
download | sqlalchemy-c3bdad10a384f779624f015a34ada785ad2dedf5.tar.gz |
- simplify MySQLIdentifierPreparer into standard pattern,
thus allowing easy subclassing
- move % sign logic for MySQLIdentifierPreparer into MySQLdb dialect
- paramterize the escape/unescape quote char in IdentifierPreparer
- cut out MySQLTableDefinitionParser cruft
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 403ec968b..02824a5f4 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1259,7 +1259,7 @@ class IdentifierPreparer(object): illegal_initial_characters = ILLEGAL_INITIAL_CHARACTERS - def __init__(self, dialect, initial_quote='"', final_quote=None, omit_schema=False): + def __init__(self, dialect, initial_quote='"', final_quote=None, escape_quote='"', omit_schema=False): """Construct a new ``IdentifierPreparer`` object. initial_quote @@ -1276,6 +1276,8 @@ class IdentifierPreparer(object): self.dialect = dialect self.initial_quote = initial_quote self.final_quote = final_quote or self.initial_quote + self.escape_quote = escape_quote + self.escape_to_quote = self.escape_quote * 2 self.omit_schema = omit_schema self._strings = {} @@ -1286,7 +1288,7 @@ class IdentifierPreparer(object): escaping behavior. """ - return value.replace('"', '""') + return value.replace(self.escape_quote, self.escape_to_quote) def _unescape_identifier(self, value): """Canonicalize an escaped identifier. @@ -1295,7 +1297,7 @@ class IdentifierPreparer(object): unescaping behavior that reverses _escape_identifier. """ - return value.replace('""', '"') + return value.replace(self.escape_to_quote, self.escape_quote) def quote_identifier(self, value): """Quote an identifier. |