Improve error message for duplicate labels in enum types - Mailing list pgsql-hackers

From Yugo Nagata
Subject Improve error message for duplicate labels in enum types
Date
Msg-id 20250704000402.37e605ab0c59c300965a17ee@sraoss.co.jp
Whole thread Raw
List pgsql-hackers
Hi,

Currently, when creating an enum type, duplicate labels are caught by a unique
index on pg_enum, resulting in a generic error message. 

 postgres=# create type t as enum ('a','b','a');
 ERROR:  duplicate key value violates unique constraint "pg_enum_typid_label_index"
 DETAIL:  Key (enumtypid, enumlabel)=(16418, a) already exists.

I propose adding an explicit check for duplicate labels during enum creation,
so that a more user-friendly and descriptive error message can be produced,
similar to what is already done in ALTER TYPE ... ADD VALUE
or ALTER TYPE ... RENAME VALUE .. TO ....
 
With the attached patch applied, the error message becomes:

ERROR:  label "a" used more than once

Regards,
Yugo Nagata


-- 
Yugo Nagata <nagata@sraoss.co.jp>

Attachment

pgsql-hackers by date:

Previous
From: Ross Heaney
Date:
Subject: Bloom Filter improvements in postgesql
Next
From: Yugo Nagata
Date:
Subject: Re: Prevent internal error at concurrent CREATE OR REPLACE FUNCTION