citext
Estensione di PostgreSQL: tipo TEXT che ignora la distinzione tra maiuscole e minuscole. 'Alice' = 'alice' restituisce true. I tipi di testo standard distinguono i casi. Uso classico: indirizzi email, nomi utente, slug.
CREATE EXTENSION citext; CREATE TABLE users (email citext UNIQUE);. Il trucco: si ottiene automaticamente un vincolo UNIQUE senza distinzione di maiuscole, senza dover scrivere LOWER(email) ovunque. Prestazioni: leggermente inferiori a text (conversione in minuscolo con supporto Unicode a ogni confronto). Alternativa moderna: TEXT normale con COLLATE non deterministico (PG 12+) dà lo stesso confronto senza estensione. Scelta pratica: citext è collaudato dal 2008, la collation ICU è la via moderna di PG.