mirror of
https://github.com/django/django.git
synced 2025-06-04 02:59:13 +00:00
[5.2.x] Fixed #36405 -- Fixed OrderableAggMixin.order_by using OuterRef.
co-authored-by: Simon Charette <charette.s@gmail.com> Backport of c2615a050036eda0bca090c707191076220cee9f from main.
This commit is contained in:
parent
c29e3092fd
commit
7e4b371eb0
@ -27,11 +27,6 @@ class OrderableAggMixin:
|
||||
self.order_by = OrderByList(order_by)
|
||||
super().__init__(*expressions, **extra)
|
||||
|
||||
def resolve_expression(self, *args, **kwargs):
|
||||
if self.order_by is not None:
|
||||
self.order_by = self.order_by.resolve_expression(*args, **kwargs)
|
||||
return super().resolve_expression(*args, **kwargs)
|
||||
|
||||
def get_source_expressions(self):
|
||||
return super().get_source_expressions() + [self.order_by]
|
||||
|
||||
|
@ -25,3 +25,7 @@ Bugfixes
|
||||
|
||||
* Fixed a regression in Django 5.2 that caused a crash when using ``OuterRef``
|
||||
in the ``filter`` argument of an ``Aggregate`` expression (:ticket:`36404`).
|
||||
|
||||
* Fixed a regression in Django 5.2 that caused a crash when using ``OuterRef``
|
||||
in PostgreSQL aggregate functions ``ArrayAgg``, ``StringAgg``, and
|
||||
``JSONBAgg`` (:ticket:`36405`).
|
||||
|
@ -350,6 +350,18 @@ class TestGeneralAggregate(PostgreSQLTestCase):
|
||||
[[], [], [], []],
|
||||
)
|
||||
|
||||
def test_array_agg_with_order_by_outer_ref(self):
|
||||
StatTestModel.objects.annotate(
|
||||
atm_ids=Subquery(
|
||||
AggregateTestModel.objects.annotate(
|
||||
ids=ArrayAgg(
|
||||
"id",
|
||||
order_by=[OuterRef("int1")],
|
||||
)
|
||||
).values("ids")[:1]
|
||||
)
|
||||
)
|
||||
|
||||
def test_bit_and_general(self):
|
||||
values = AggregateTestModel.objects.filter(integer_field__in=[0, 1]).aggregate(
|
||||
bitand=BitAnd("integer_field")
|
||||
|
Loading…
x
Reference in New Issue
Block a user