Использование Django 1.3x.
В настоящее время у меня есть очень, очень большой и очень, очень активный набор данных Postgres, в котором есть важный столбец, проиндексированный как lower(column)
.
Я только что понял, что некоторые общие запросы были довольно медленными, потому что Django ORM генерирует запрос для поля как blah = UPPER(column)
, когда я использую iexact
для сопоставления с этим полем.
Есть ли простой способ заставить ORM использовать вместо этого lower()
или мне нужно перейти к чистому SQL для этого?
Спасибо!
[побочный вопрос для комментариев: есть ли упущенная веская причина использовать upper()
в индексе, а не lower()
?]