summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorCaio Ariede <caio.ariede@gmail.com>2019-05-25 10:19:32 -0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-05-28 10:05:50 +0200
commita3f91891d2c7f4bdc33f48ae70820ef6f36da26e (patch)
treeb663c5f1240d0223079cc87113b3f41734c10dbf /django
parentb2790f74d4f38c8b297b7c1cef6875d2378f6fa6 (diff)
Fixed #30315 -- Fixed crash of ArrayAgg and StringAgg with ordering when used in Subquery.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/postgres/aggregates/mixins.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/django/contrib/postgres/aggregates/mixins.py b/django/contrib/postgres/aggregates/mixins.py
index 6c1ce53b75..4625738beb 100644
--- a/django/contrib/postgres/aggregates/mixins.py
+++ b/django/contrib/postgres/aggregates/mixins.py
@@ -33,6 +33,12 @@ class OrderableAggMixin:
return sql, sql_params + ordering_params
return super().as_sql(compiler, connection, ordering='')
+ def set_source_expressions(self, exprs):
+ # Extract the ordering expressions because ORDER BY clause is handled
+ # in a custom way.
+ self.ordering = exprs[self._get_ordering_expressions_index():]
+ return super().set_source_expressions(exprs[:self._get_ordering_expressions_index()])
+
def get_source_expressions(self):
return self.source_expressions + self.ordering