summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-09-05 14:50:21 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-09-05 16:28:20 -0400
commit356d6659b17d199c1a5ecc4241e7ee3edc6a754e (patch)
treea6b4da92f7d0185cb876794746b6bcd16f62a8d9 /lib/sqlalchemy/sql/compiler.py
parent2b10aa45a101acfcc6090a3801af998ef8fc1a2d (diff)
downloadsqlalchemy-356d6659b17d199c1a5ecc4241e7ee3edc6a754e.tar.gz
- tiny refactors #1-#5
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