Error message inconsistency
Simon Riggs <simon@2ndquadrant.com>
From: Simon Riggs <simon@2ndquadrant.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-03-22T17:25:31Z
Lists: pgsql-hackers
Attachments
- rationalize_constraint_error_messages.v1.patch (application/octet-stream) patch v1
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
Commits
-
Added relation name in error messages for constraint checks.
- 05f18c6b6b6e 13.0 landed