diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-05-20 13:41:44 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-05-21 14:16:03 -0400 |
commit | 4550983e0ce2f35b3585e53894c941c23693e71d (patch) | |
tree | 3928e6e333c2b9bb6e23a4de079565a387d309ae /lib/sqlalchemy/sql/compiler.py | |
parent | 3d55263c92ee29a0257d823124c353a35246cf31 (diff) | |
download | sqlalchemy-4550983e0ce2f35b3585e53894c941c23693e71d.tar.gz |
Performance fixes for new result set
A few small mistakes led to huge callcounts. Additionally,
the warn-on-get behavior which is attempting to warn for
deprecated access in SQLAlchemy 2.0 is very expensive; it's not clear
if its feasible to have this warning or to somehow alter how it
works.
Fixes: #5340
Change-Id: I73bdd2d7b6f1b25cc0222accabd585cf761a5af4
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index d32e3fd7a..ccc1b53fe 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -840,16 +840,17 @@ class SQLCompiler(Compiled): ), replace_context=err, ) - resolved_extracted = dict( - zip([b.key for b in orig_extracted], extracted_parameters) - ) + + resolved_extracted = { + b.key: extracted + for b, extracted in zip(orig_extracted, extracted_parameters) + } else: resolved_extracted = None if params: pd = {} - for bindparam in self.bind_names: - name = self.bind_names[bindparam] + for bindparam, name in self.bind_names.items(): if bindparam.key in params: pd[name] = params[bindparam.key] elif name in params: @@ -884,7 +885,7 @@ class SQLCompiler(Compiled): return pd else: pd = {} - for bindparam in self.bind_names: + for bindparam, name in self.bind_names.items(): if _check and bindparam.required: if _group_number: raise exc.InvalidRequestError( @@ -908,11 +909,9 @@ class SQLCompiler(Compiled): value_param = bindparam if bindparam.callable: - pd[ - self.bind_names[bindparam] - ] = value_param.effective_value + pd[name] = value_param.effective_value else: - pd[self.bind_names[bindparam]] = value_param.value + pd[name] = value_param.value return pd @property |