summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-09-05 16:29:08 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-09-05 16:29:08 -0400
commitd39daa43fe79c40419adf4babc5ae04f814461b7 (patch)
tree8346d3736b5f4b323ec77ea63f4342e7cad82329 /lib/sqlalchemy/sql/compiler.py
parentd2c05c36a5c5f5b4838e924b4de2280f73916c99 (diff)
parent583287259fbb6d143696b418756ed68e6110cd2d (diff)
downloadsqlalchemy-d39daa43fe79c40419adf4babc5ae04f814461b7.tar.gz
Merge branch 'master' into ticket_3100
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index e92520620..af0fff826 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -442,11 +442,13 @@ class SQLCompiler(Compiled):
if params:
pd = {}
- for bindparam, name in self.bind_names.items():
+ for bindparam in self.bind_names:
+ name = self.bind_names[bindparam]
if bindparam.key in params:
pd[name] = params[bindparam.key]
elif name in params:
pd[name] = params[name]
+
elif _check and bindparam.required:
if _group_number:
raise exc.InvalidRequestError(
@@ -457,8 +459,11 @@ class SQLCompiler(Compiled):
raise exc.InvalidRequestError(
"A value is required for bind parameter %r"
% bindparam.key)
- else:
+
+ elif bindparam.callable:
pd[name] = bindparam.effective_value
+ else:
+ pd[name] = bindparam.value
return pd
else:
pd = {}
@@ -473,7 +478,11 @@ class SQLCompiler(Compiled):
raise exc.InvalidRequestError(
"A value is required for bind parameter %r"
% bindparam.key)
- pd[self.bind_names[bindparam]] = bindparam.effective_value
+
+ if bindparam.callable:
+ pd[self.bind_names[bindparam]] = bindparam.effective_value
+ else:
+ pd[self.bind_names[bindparam]] = bindparam.value
return pd
@property