From 7b065c41e406fb22d39d1f7b4cfed96bf06dc591 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Sat, 21 Dec 2019 23:22:49 -0500 Subject: [3.0.x] Fixed #31109 -- Disabled grouping by aliases on QuerySet.exists(). Clearing the SELECT clause in Query.has_results was orphaning GROUP BY references to it. Thanks Thierry Bastian for the report and Baptiste Mispelon for the bisect. Regression in fb3f034f1c63160c0ff13c609acd01c18be12f80. Backport of 720de4d0441fcfdb543051389c70efbe66ed962a from master --- tests/aggregation/tests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tests') diff --git a/tests/aggregation/tests.py b/tests/aggregation/tests.py index 5ba2e180e0..efc0a72c86 100644 --- a/tests/aggregation/tests.py +++ b/tests/aggregation/tests.py @@ -1139,6 +1139,16 @@ class AggregateTestCase(TestCase): list(publisher_qs) self.assertEqual(ctx[0]['sql'].count('SELECT'), 2) + def test_aggregation_subquery_annotation_exists(self): + latest_book_pubdate_qs = Book.objects.filter( + publisher=OuterRef('pk') + ).order_by('-pubdate').values('pubdate')[:1] + publisher_qs = Publisher.objects.annotate( + latest_book_pubdate=Subquery(latest_book_pubdate_qs), + count=Count('book'), + ) + self.assertTrue(publisher_qs.exists()) + @skipUnlessDBFeature('supports_subqueries_in_group_by') def test_group_by_subquery_annotation(self): """ -- cgit v1.3