Identificadores (incluidos los nombres de las columnas) que no las comillas dobles se doblan a minúsculas en PostgreSQL. Nombres de columnas que se crearon con comillas dobles y, por lo tanto, las letras mayúsculas retenidas (y/u otras violaciones de sintaxis) tienen que estar entre comillas dobles por el resto de su vida:
"first_Name"
Valores (literales de cadena/constantes) están encerrados entre comillas simples :
'xyz'
Entonces, sí , los nombres de las columnas de PostgreSQL distinguen entre mayúsculas y minúsculas (cuando se usan comillas dobles):
SELECT * FROM persons WHERE "first_Name" = 'xyz';
Lea el manual sobre identificadores aquí.
Mi consejo permanente es usar nombres legales en minúsculas exclusivamente para que no se necesiten comillas dobles.