From 1cbaff643f8d524fc0f7b347f659d18a67884f16 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 6 Dec 2017 16:22:31 -0500 Subject: Disable eager loads for exists() The :meth:`.Query.exists` method will now disable eager loaders for when the query is rendered. Previously, joined-eager load joins would be rendered unnecessarily as well as subquery eager load queries would be needlessly generated. The new behavior matches that of the :meth:`.Query.subquery` method. Fixes: #4032 Change-Id: Iacafc76aa9ae0b71928037fa9637e85ad434ee3a --- lib/sqlalchemy/orm/query.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index b3bb5302f..209bb6d6a 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -3066,7 +3066,8 @@ class Query(object): # omitting the FROM clause from a query(X) (#2818); # .with_only_columns() after we have a core select() so that # we get just "SELECT 1" without any entities. - return sql.exists(self.add_columns('1').with_labels(). + return sql.exists(self.enable_eagerloads(False).add_columns('1'). + with_labels(). statement.with_only_columns([1])) def count(self): -- cgit v1.2.1