#28560: distinct() on ordered queryset with restricted list of columns returns
incorrect result
-------------------------------------+-------------------------------------
     Reporter:  felixxm              |                    Owner:  felixxm
         Type:  Bug                  |                   Status:  assigned
    Component:  Database layer       |                  Version:  master
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  distinct values      |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by felixxm:

Old description:

> `distinct()` doesn't work properly on `None` values. If we select columns
> with `null` values then `distinct()` returns each of them instead of
> single `None`, e.g. (based on `queries/tests.py`):
>
> {{{
> >>>
> list(Item.objects.filter(modified__isnull=True).values_list('modified',
> flat=True).distinct())
> [None, None, None]
> }}}
>
> instead of `[None]`.

New description:

 I think we should raise `NotSupportedError` when `distinct()` is used with
 `values()` (or `values_list()`) on ordered queryset and a list of fields
 in `values()` doesn't contain all fields from `ORDER BY`. It cannot return
 correct result because columns from `ORDER BY` clause must be included in
 `SELECT`.

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/28560#comment:3>
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 post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/065.43b99a2c2038f9008c6449b571aa6fc7%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to