As noted by a PostgreSQL user to me, error messages for NOT NULL constraints are inconsistent - they do not mention the relation name in the message, as all other variants of this message do. e.g.
postgres=# create table nn (id integer not null); CREATE TABLE postgres=# insert into nn values (NULL); ERROR: null value in column "id" violates not-null constraint DETAIL: Failing row contains (null). postgres=# create table nn2 (id integer check (id is not null)); CREATE TABLE postgres=# insert into nn2 values (NULL); ERROR: new row for relation "nn2" violates check constraint "nn2_id_check" DETAIL: Failing row contains (null). I propose the attached patch as a fix, changing the wording (of the first case) to ERROR: null value in column "id" for relation "nn" violates not-null constraint It causes breakage in multiple tests, which is easy to fix once/if we agree to change. Thanks -- Simon Riggs http://www.2ndQuadrant.com/ <http://www.2ndquadrant.com/> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
rationalize_constraint_error_messages.v1.patch
Description: Binary data