Opened 8 years ago
Last modified 5 years ago
#28560 new Bug
distinct() on ordered queryset with restricted list of columns returns incorrect result — at Version 7
| Reported by: | Mariusz Felisiak | Owned by: | Mariusz Felisiak |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | dev |
| Severity: | Normal | Keywords: | distinct values |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
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, then it doesn't return correct result because columns from ORDER BY clause must be included in SELECT. As Simon suggested we should wrap a query in a subquery.
Change History (6)
comment:2 by , 8 years ago
| Summary: | distinct() on None values → distinct() on ordered queryset with restricted list of columns returns incorrect result |
|---|
comment:3 by , 8 years ago
| Description: | modified (diff) |
|---|
comment:4 by , 8 years ago
comment:5 by , 8 years ago
Good idea! it should be feasible. I will try to prepare patch in this week.
comment:6 by , 8 years ago
By the way Mariusz, do you have an opinion on https://code.djangoproject.com/ticket/14357#comment:11?
comment:7 by , 8 years ago
| Description: | modified (diff) |
|---|
Couldn't we wrap the query in a subquery like we did in #24254 in this case?