mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
Fixed #34987 -- Fixed queryset crash when mixing aggregate and window annotations.
Regression in f387d024fc.
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.
This commit is contained in:
@@ -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