#30683: QuerySet.count() crashes when window functions and conditional 
expressions
are both used
-------------------------------------+-------------------------------------
               Reporter:  adamsol    |          Owner:  nobody
                   Type:  Bug        |         Status:  new
              Component:  Database   |        Version:  2.2
  layer (models, ORM)                |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 Any `count()` query with window functions inside conditional expressions,
 like:

 {{{Model.objects.annotate(rank=Case(When(condition=~Q(pk=None),
 then=Window(Rank(), order_by=F('pk'))))).count()}}}

 throws an error:

 {{{django.db.utils.ProgrammingError: window functions are not allowed in
 GROUP BY}}}

 The query works after adding `.values('pk')` to it or when conditional
 expressions are not used.

 There is a similar inconsistency when we call e.g. `.filter(rank__gt=0)`
 instead of `.count()`. It doesn't work anyway (#28333), but there are two
 different errors depending on whether conditionals are used:
 `django.db.utils.ProgrammingError: window functions are not allowed in
 WHERE` or `django.db.utils.NotSupportedError: Window is disallowed in the
 filter clause.`.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30683>
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 django-updates+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/050.908f017a591fe24382702bec8a7a1deb%40djangoproject.com.

Reply via email to