summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2017-12-01 13:22:23 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2017-12-01 16:32:27 -0500
commite447582b8575eaf165f02864a4b0b977930b3a52 (patch)
treed8bb7dab334fc5516e43a4e77f6761b831da4053 /lib/sqlalchemy
parent5da41e46d3e293df03a9741073ed02e2fcca08a2 (diff)
downloadsqlalchemy-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.py5
-rw-r--r--lib/sqlalchemy/engine/default.py2
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
)