diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-12-01 13:22:23 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-12-01 16:32:27 -0500 |
| commit | e447582b8575eaf165f02864a4b0b977930b3a52 (patch) | |
| tree | d8bb7dab334fc5516e43a4e77f6761b831da4053 /lib/sqlalchemy | |
| parent | 5da41e46d3e293df03a9741073ed02e2fcca08a2 (diff) | |
| download | sqlalchemy-e447582b8575eaf165f02864a4b0b977930b3a52.tar.gz | |
Fix regexp for expanding IN
Fixed bug in new "expanding bind parameter" feature whereby if multiple
params were used in one statement, the regular expression would not
match the parameter name correctly.
Change-Id: Ifaf7d627aac4ead2a13c8dddccb5c515253d88e6
Fixes: #4140
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/cx_oracle.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 56a0425c8..68ecce519 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -376,6 +376,11 @@ class OracleCompiler_cx_oracle(OracleCompiler): quote = getattr(name, 'quote', None) if quote is True or quote is not False and \ self.preparer._bindparam_requires_quotes(name): + if kw.get('expanding', False): + raise exc.CompileError( + "Can't use expanding feature with parameter name " + "%r on Oracle; it requires quoting which is not supported " + "in this context." % name) quoted_name = '"%s"' % name self._quoted_bind_names[name] = quoted_name return OracleCompiler.bindparam_string(self, quoted_name, **kw) diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 4b9aa9493..36344fc38 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -779,7 +779,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext): return replacement_expressions.pop(m.group(1)) self.statement = re.sub( - r"\[EXPANDING_(.+)\]", + r"\[EXPANDING_(\S+)\]", process_expanding, self.statement ) |
