#31217: QuerySet.values()/values_list() with ordering by annotations with 
related
fields and aggregations crashes.
-------------------------------------+-------------------------------------
               Reporter:  felixxm    |          Owner:  nobody
                   Type:  Bug        |         Status:  new
              Component:  Database   |        Version:  3.0
  layer (models, ORM)                |
               Severity:  Release    |       Keywords:
  blocker                            |
           Triage Stage:  Accepted   |      Has patch:  0
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 `QuerySet.values()`/`values_list()` with ordering by annotations with
 related fields and aggregations crashes, e.g.
 {{{
     def test_aggregation_ordered_by_related_annotation_values(self):
         from django.db.models.functions import Coalesce
         self.assertEqual(
             list(Book.objects.annotate(
                 max_age=Count('authors__age'),
             ).annotate(
                 max_related_age=Coalesce('max_age', 'contact__age'),
             ).order_by('max_related_age').values_list('pk', flat=True)),
             [self.b6.pk, self.b3.pk, self.b2.pk, self.b1.pk, self.b5.pk,
 self.b4.pk],
         )
 }}}
 crashes with:
 {{{
 django.db.utils.ProgrammingError: column "t4.age" must appear in the GROUP
 BY clause or be used in an aggregate function
 LINE 1: ...ER BY COALESCE(COUNT("aggregation_author"."age"), T4."age") ...
 }}}

 Regression in 59b4e99dd00b9c36d56055b889f96885995e4240.

 Thanks Jon Dufresne for the report.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/31217>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/050.ed548d02c9ab613074d5ae45699af0fb%40djangoproject.com.

Reply via email to