Example:
{{{
qs = (
CaseTestModel.objects.values('string')
.annotate(test=Case(output_field=IntegerField()),
integer_sum=Sum('integer'))
.order_by('string')
)
}}}
Executing this queryset generates the following SQL:
{{{
SELECT "expressions_case_casetestmodel"."string", NULL AS "test",
SUM("expressions_case_casetestmodel"."integer") AS "integer_sum" FROM
"expressions_case_casetestmodel" GROUP BY
"expressions_case_casetestmodel"."string", NULL ORDER BY
"expressions_case_casetestmodel"."string" ASC
}}}
Causing the following error:
{{{
django.db.utils.ProgrammingError: non-integer constant in GROUP BY
LINE 1: ...OUP BY "expressions_case_casetestmodel"."string", NULL ORDER...
}}}
The `Case` annotation should be excluded from the `GROUP BY` if it
contains no cases.
--
Ticket URL: <https://code.djangoproject.com/ticket/32126>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* has_patch: 0 => 1
Comment:
PR: https://github.com/django/django/pull/13576
--
Ticket URL: <https://code.djangoproject.com/ticket/32126#comment:1>
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/32126#comment:2>
* stage: Accepted => Ready for checkin
Comment:
Patch LGTM assuming it passes the suite on Oracle.
--
Ticket URL: <https://code.djangoproject.com/ticket/32126#comment:3>