diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-09-05 16:29:08 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-09-05 16:29:08 -0400 |
| commit | d39daa43fe79c40419adf4babc5ae04f814461b7 (patch) | |
| tree | 8346d3736b5f4b323ec77ea63f4342e7cad82329 /lib/sqlalchemy/sql/compiler.py | |
| parent | d2c05c36a5c5f5b4838e924b4de2280f73916c99 (diff) | |
| parent | 583287259fbb6d143696b418756ed68e6110cd2d (diff) | |
| download | sqlalchemy-d39daa43fe79c40419adf4babc5ae04f814461b7.tar.gz | |
Merge branch 'master' into ticket_3100
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
| -rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 15 |
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 |
