Opened 11 years ago
Last modified 8 years ago
#20888 closed New feature
Index ordering in index_together and unique_together — at Initial Version
Reported by: | anonymous | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | index, order, db-indexes 1.11 |
Cc: | aksheshdoshi@… | Triage Stage: | Ready for checkin |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hi,
Currently the index_together tuples do not support index ordering using + / -.
If I have the following table:
class Messages:
user_id,
rating,
last_update,
index_together=[
['user_id', 'rating', 'last_update',] # sorted ASC by default
]
So for MySQL, the following query cannot make use of the index:
Messages.objects.filter(user_id=xxx).order_by('+rating','-last_update')
Pardon me if it actually can make use of the index.
I know there are workarounds, such as negating values to make a DESC ordering become ASC ordering.
But it is just nice to have such a feature.
Btw, what is the reason for not having this feature?