summaryrefslogtreecommitdiff
path: root/tests/postgres_tests
diff options
context:
space:
mode:
authorHannes Ljungberg <hannes.ljungberg@gmail.com>2021-05-25 21:17:05 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-06-30 10:08:55 +0200
commitd8c90d4c22cb218f1c170eba086c53d3dff7fbc0 (patch)
treec330f4a71f3cc41621d19b593d60b442488c7b38 /tests/postgres_tests
parent053141d31fe5aef1c255a1be183383860e0ccce9 (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')
-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