Non chiama la funzione SQL lower
. Come dice la documentazione, essenzialmente internamente chiama lower
.
Le chiamate avvengono all'interno delle funzioni C che implementano il citext
operazioni di confronto. E invece di chiamare effettivamente lower
, vanno direttamente al str_tolower()
sottostante routine. Puoi vederlo di persona nel codice sorgente , la maggior parte dei quali è relativamente facile da seguire in questo caso.
Quindi quello che stai salvando, più o meno, è il sovraccarico di due chiamate di funzioni SQL per confronto. Il che non è insignificante, rispetto al costo del confronto stesso, ma probabilmente non noterai mai nessuno dei due accanto agli altri costi in una query tipica.