user
jest funkcją wbudowaną (i słowem kluczowym). Więc tak naprawdę nie możesz użyć go jako nazwy tabeli:
psql (10.4)
Type "help" for help.
postgres=# select user;
user
----------
postgres
(1 row)
postgres=# select * from user;
user
----------
postgres
(1 row)
A ponieważ jest to funkcja, nie ma kolumny name
.
postgres=# select name from user;
ERROR: column "name" does not exist
LINE 1: select name from user;
^
postgres=#
Jeśli zakwalifikujesz tabelę, jasne jest, że nie odwołujesz się do funkcji, ale do tabeli.
Możesz zawsze zakwalifikować nazwę tabeli do schematu lub użyć podwójnych cudzysłowów:select name from "user";
lub po prostu znajdź nazwę tabeli, która nie koliduje z wbudowanymi funkcjami.