#33768: MySQL ordering of nulls last/first is broken in combination with UNION
-------------------------------------+-------------------------------------
Reporter: Florian Apolloner | Owner: Aniruddh
| Singh
Type: Bug | Status: assigned
Component: Database layer | Version: dev
(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
-------------------------------------+-------------------------------------
Comment (by Simon Charette):
Aniruddh, we appreciate your interest but this issue is quite complex so
you might want to focus on another issue instead for your first
contributions.
----
Thanks for the great summary Florian!
> Maybe, in hindsight that would probably should have been the way to
implement unions (etc) in the first place. Maybe now is the time to switch
to that :) What does a subquery mean in terms of performance -- I'd hope
the database wouldn't care to much…
From some limited local testing on SQLite, PostgreSQL, and MySQL and
looking at the generate `EXPLAIN` plan it doesn't seem like they care too
much. But it might not be necessary after some more thoughts as the `ORDER
BY` clause allows for ordering by aliases as well.
> Reusing aliases and references seems like a good idea. It makes the
query imo more readable and also means less parsing overhead for the
server (probably negligible but still).
I completely agree with this statement but I don't understand how this
relates to using selected field indexes instead of aliases?
From my understanding and testing engines locally it seems that all
engines allow to refer to the first query member of the union by column
aliases just like by index so once we've addressed the issue with ordering
by selected references not being used we could entirely drop the
specialized combinator logic that uses `RawSQL` to order by column index?
--
Ticket URL: <https://code.djangoproject.com/ticket/33768#comment:6>
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/010701817f6f4416-221e0861-520d-442b-962a-395a1a37dc0b-000000%40eu-central-1.amazonses.com.