From fd93db97c7228b16a4f92f97ef05b0d72418d952 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Sat, 6 Aug 2022 17:59:31 +0200 Subject: Fixed #33898 -- Fixed Window() expression crash with ArrayAgg(). Thanks Kia for the report. Regression in e06dc4571ea9fd5723c8029959b95808be9f8812. --- tests/postgres_tests/test_aggregates.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/postgres_tests') diff --git a/tests/postgres_tests/test_aggregates.py b/tests/postgres_tests/test_aggregates.py index c3df490fcf..c2f38e42b6 100644 --- a/tests/postgres_tests/test_aggregates.py +++ b/tests/postgres_tests/test_aggregates.py @@ -8,6 +8,7 @@ from django.db.models import ( Q, Subquery, Value, + Window, ) from django.db.models.fields.json import KeyTextTransform, KeyTransform from django.db.models.functions import Cast, Concat, Substr @@ -669,6 +670,22 @@ class TestGeneralAggregate(PostgreSQLTestCase): inner_qs.values_list("integer_field", flat=True), ) + def test_window(self): + self.assertCountEqual( + AggregateTestModel.objects.annotate( + integers=Window( + expression=ArrayAgg("char_field"), + partition_by=F("integer_field"), + ) + ).values("integers", "char_field"), + [ + {"integers": ["Foo1", "Foo3"], "char_field": "Foo1"}, + {"integers": ["Foo1", "Foo3"], "char_field": "Foo3"}, + {"integers": ["Foo2"], "char_field": "Foo2"}, + {"integers": ["Foo4"], "char_field": "Foo4"}, + ], + ) + class TestAggregateDistinct(PostgreSQLTestCase): @classmethod -- cgit v1.2.1