mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
[5.0.x] Fixed #34987 -- Fixed queryset crash when mixing aggregate and window annotations.
Regression inf387d024fc. Just like `OrderByList` the `ExpressionList` expression used to wrap `Window.partition_by` must implement `get_group_by_cols` to ensure the necessary grouping when mixing window expressions with aggregate annotations is performed against the partition members and not the partition expression itself. This is necessary because while `partition_by` is implemented as a source expression of `Window` it's actually a fragment of the WINDOW expression at the SQL level and thus it should result in a group by its members and not the sum of them. Thanks ElRoberto538 for the report. Backport ofe76cc93b01from main
This commit is contained in:
committed by
Mariusz Felisiak
parent
06bdf62b56
commit
95dec210e8
@@ -16,3 +16,7 @@ Bugfixes
|
||||
* Fixed a regression in Django 4.2 that caused a crash of
|
||||
``QuerySet.aggregate()`` with aggregates referencing other aggregates or
|
||||
window functions through conditional expressions (:ticket:`34975`).
|
||||
|
||||
* Fixed a regression in Django 4.2 that caused a crash when annotating a
|
||||
``QuerySet`` with a ``Window`` expressions composed of a ``partition_by``
|
||||
clause mixing field types and aggregation expressions (:ticket:`34987`).
|
||||
|
||||
Reference in New Issue
Block a user