diff options
| author | Caio Ariede <caio.ariede@gmail.com> | 2019-05-25 10:19:32 -0300 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-05-28 10:05:50 +0200 |
| commit | a3f91891d2c7f4bdc33f48ae70820ef6f36da26e (patch) | |
| tree | b663c5f1240d0223079cc87113b3f41734c10dbf /django | |
| parent | b2790f74d4f38c8b297b7c1cef6875d2378f6fa6 (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.py | 6 |
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 |
