diff options
| author | Hannes Ljungberg <hannes.ljungberg@gmail.com> | 2021-05-25 21:17:05 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-06-30 10:08:55 +0200 |
| commit | d8c90d4c22cb218f1c170eba086c53d3dff7fbc0 (patch) | |
| tree | c330f4a71f3cc41621d19b593d60b442488c7b38 /tests/postgres_tests/test_aggregates.py | |
| parent | 053141d31fe5aef1c255a1be183383860e0ccce9 (diff) | |
Fixed #32786 -- Moved subquery ordering clearing optimization to the _in lookup.
Co-Authored-By: Simon Charette <charette.s@gmail.com>
Diffstat (limited to 'tests/postgres_tests/test_aggregates.py')
| -rw-r--r-- | tests/postgres_tests/test_aggregates.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/postgres_tests/test_aggregates.py b/tests/postgres_tests/test_aggregates.py index 7f21def1be..d47c24203b 100644 --- a/tests/postgres_tests/test_aggregates.py +++ b/tests/postgres_tests/test_aggregates.py @@ -1,4 +1,6 @@ -from django.db.models import CharField, F, OuterRef, Q, Subquery, Value +from django.db.models import ( + CharField, F, Func, IntegerField, OuterRef, Q, Subquery, Value, +) from django.db.models.fields.json import KeyTextTransform, KeyTransform from django.db.models.functions import Cast, Concat, Substr from django.test.utils import Approximate @@ -12,6 +14,7 @@ try: RegrAvgX, RegrAvgY, RegrCount, RegrIntercept, RegrR2, RegrSlope, RegrSXX, RegrSXY, RegrSYY, StatAggregate, StringAgg, ) + from django.contrib.postgres.fields import ArrayField except ImportError: pass # psycopg2 is not installed @@ -390,6 +393,20 @@ class TestGeneralAggregate(PostgreSQLTestCase): [self.aggs[0]], ) + def test_ordering_isnt_cleared_for_array_subquery(self): + inner_qs = AggregateTestModel.objects.order_by('-integer_field') + qs = AggregateTestModel.objects.annotate( + integers=Func( + Subquery(inner_qs.values('integer_field')), + function='ARRAY', + output_field=ArrayField(base_field=IntegerField()), + ), + ) + self.assertSequenceEqual( + qs.first().integers, + inner_qs.values_list('integer_field', flat=True), + ) + class TestAggregateDistinct(PostgreSQLTestCase): @classmethod |
