summaryrefslogtreecommitdiff
path: root/tests/postgres_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/postgres_tests')
-rw-r--r--tests/postgres_tests/test_aggregates.py19
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