Identificatori (compresi i nomi delle colonne) che non sono le virgolette doppie vengono piegate in minuscolo in PostgreSQL. Nomi di colonna creati con virgolette doppie e quindi le lettere maiuscole conservate (e/o altre violazioni della sintassi) devono essere virgolette per il resto della loro vita:
"first_Name"
Valori (stringhe letterali/costanti) sono racchiuse tra virgolette singole :
'xyz'
Quindi, sì , I nomi delle colonne di PostgreSQL fanno distinzione tra maiuscole e minuscole (se tra virgolette doppie):
SELECT * FROM persons WHERE "first_Name" = 'xyz';
Leggi qui il manuale sugli identificatori.
Il mio consiglio permanente è di utilizzare esclusivamente nomi legali, minuscoli, in modo che non siano necessarie virgolette doppie.