Utilizzo di Django 1.3x.Posso superare facilmente Django ORM 'iexact' per usare LOWER() invece di UPPER()?
Attualmente ho un dataset Postgres molto, molto grande e molto, molto attivo che ha una colonna importante indicizzata come .
Ho appena realizzato che alcune query comuni erano piuttosto lente perché l'ORM di Django sta generando una query per il campo come blah = UPPER(column)
quando sto usando iexact
per abbinare quel campo.
C'è un modo semplice per forzare l'ORM a utilizzare lower()
invece, o devo passare a SQL raw per questo?
Grazie!
[domanda lato per i commenti: C'è una buona ragione, di fronte, di aver utilizzato upper()
sull'indice, piuttosto che lower()
?]
Chris, Grazie per la risposta! Mi sono imbattuto anche in quei biglietti, ma non ho visto nessuna discussione importante sul perché improvvisamente cambiato in 'upper()'. La tua opinione su Oracle bit è la più che ho sentito. Questa è una semplice domanda, davvero, quindi suppongo che userò semplicemente '.raw()' qui. Grazie mille! –