diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-09-05 14:50:21 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-09-05 16:28:20 -0400 |
commit | 356d6659b17d199c1a5ecc4241e7ee3edc6a754e (patch) | |
tree | a6b4da92f7d0185cb876794746b6bcd16f62a8d9 /lib/sqlalchemy/sql/compiler.py | |
parent | 2b10aa45a101acfcc6090a3801af998ef8fc1a2d (diff) | |
download | sqlalchemy-356d6659b17d199c1a5ecc4241e7ee3edc6a754e.tar.gz |
- tiny refactors #1-#5
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 |