Thread
-
Re: BUG #19352: SQL Error messages do not include schema name along with table or data object name.
Álvaro Herrera <alvherre@kurilemu.de> — 2025-12-12T15:10:48Z
Actually, these error reports do include a schema name among other things -- it's just hidden from view. For psql it's very easy to make them visible, just use \set VERBOSITY verbose Then the error message includes more detail: =# insert into sh.t2 values (1); ERROR: 23503: insert or update on table "t2" violates foreign key constraint "t2_i_fkey" DETAIL: Key (i)=(1) is not present in table "t". SCHEMA NAME: sh TABLE NAME: t2 CONSTRAINT NAME: t2_i_fkey LOCATION: ri_ReportViolation, ri_triggers.c:2770 Other clients would have their own ways to display that information. Kirill Reshke wrote: > I may be foolish but constraints are not schema-qualified, they just > have names. You're not foolish, but the schema name is attached to the table. You're correct that there can be more than one constraint with the same name in a schema, but there cannot be more than one constraint with the same name on the _table_, which is itself uniquely identified by the schema and its name. So you could argue that we could improve this by schema-qualifying the table name (not the constraint name) in this message: ERROR: 23503: insert or update on table "sh.t2" violates foreign key constraint "t2_i_fkey" -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "No me acuerdo, pero no es cierto. No es cierto, y si fuera cierto, no me acuerdo." (Augusto Pinochet a una corte de justicia)