#26019: Incorrect query generated when combining querysets refering to different
fields under the same alias.
-------------------------------------+-------------------------------------
Reporter: mssnlayam | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by charettes):
* version: 1.9 => master
* stage: Unreviewed => Accepted
Comment:
I changed the title to reflect what I think is the actual issue.
If we could use kwargs to specify aliases (#16735) the issue could be
expressed by the following query combination:
{{{#!python
User.object.values(name='first_name') |
User.objects.values(name='last_name')
}}}
Still considering this a bug because a `TypeError` should be raised in
[https://github.com/django/django/blob/df3d5b1d73699b323aac377dffab039dca26c1e4/django/db/models/query.py#L1093-L1102
Query._merge_sanity_checks] to warn the user about this case.
Once we land this bug fix we should consider reorienting this ticket as a
''feature request'' to teach the ORM it should use `UNION ALL` in such
case.
{{{#!sql
SELECT "auth_user"."first_name" AS "name" FROM "auth_user"
UNION ALL
SELECT "auth_user"."last_name" AS "name FROM "auth_user"
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/26019#comment:4>
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.ac9cf554b305da644cd7254b9d69d8e7%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.