diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2021-04-07 16:07:51 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-04-07 16:07:51 +0000 |
| commit | cf7e345d953cfc276c0008b1b634d459aee19489 (patch) | |
| tree | 82c0465505b88b71d57771a6448c81b0492e11e5 /lib/sqlalchemy/sql | |
| parent | de72737987e6b9757e6b2fe5bea07bb110356ce8 (diff) | |
| parent | f6306921353b94ed2ffc36b3d04e0ba4284f4898 (diff) | |
| download | sqlalchemy-cf7e345d953cfc276c0008b1b634d459aee19489.tar.gz | |
Merge "Expand reg for schema translate map for most special characters"
Diffstat (limited to 'lib/sqlalchemy/sql')
| -rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 61dfbeb07..9aa747056 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -4661,6 +4661,11 @@ class IdentifierPreparer(object): def symbol_getter(obj): name = obj.schema if name in schema_translate_map and obj._use_schema_map: + if name is not None and ("[" in name or "]" in name): + raise exc.CompileError( + "Square bracket characters ([]) not supported " + "in schema translate name '%s'" % name + ) return quoted_name( "[SCHEMA_%s]" % (name or "_none"), quote=False ) @@ -4688,7 +4693,7 @@ class IdentifierPreparer(object): ) return self.quote(effective_schema) - return re.sub(r"(\[SCHEMA_([\w\d_]+)\])", replace, statement) + return re.sub(r"(\[SCHEMA_([^\]]+)\])", replace, statement) def _escape_identifier(self, value): """Escape an identifier. |
