From dce8c7a125cb99fad62c76cd145752d5afefae36 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 1 Dec 2019 17:24:27 -0500 Subject: Unify Query and select() , move all processing to compile phase Convert Query to do virtually all compile state computation in the _compile_context() phase, and organize it all such that a plain select() construct may also be used as the source of information in order to generate ORM query state. This makes it such that Query is not needed except for its additional methods like from_self() which are all to be deprecated. The construction of ORM state will occur beyond the caching boundary when the new execution model is integrated. future select() gains a working join() and filter_by() method. as we continue to rebase and merge each commit in the steps, callcounts continue to bump around. will have to look at the final result when it's all in. References: #5159 References: #4705 References: #4639 References: #4871 References: #5010 Change-Id: I19e05b3424b07114cce6c439b05198ac47f7ac10 --- lib/sqlalchemy/engine/base.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/sqlalchemy/engine') diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index c477c4292..ee02899f6 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1149,6 +1149,7 @@ class Connection(Connectable): # ensure we don't retain a link to the view object for keys() # which links to the values, which we don't want to cache keys = list(distilled_params[0].keys()) + else: keys = [] @@ -1184,6 +1185,9 @@ class Connection(Connectable): schema_translate_map=schema_translate_map, linting=self.dialect.compiler_linting | compiler.WARN_LINTING, + compile_state_factories=exec_opts.get( + "compile_state_factories", None + ), ) cache[key] = compiled_sql @@ -1195,6 +1199,9 @@ class Connection(Connectable): inline=len(distilled_params) > 1, schema_translate_map=schema_translate_map, linting=self.dialect.compiler_linting | compiler.WARN_LINTING, + compile_state_factories=exec_opts.get( + "compile_state_factories", None + ), ) ret = self._execute_context( -- cgit v1.2.1