Improve error message for duplicate labels in enum types
Yugo Nagata <nagata@sraoss.co.jp>
From: Yugo Nagata <nagata@sraoss.co.jp>
To: Pgsql Hackers <pgsql-hackers@postgresql.org>
Date: 2025-07-03T15:04:02Z
Lists: pgsql-hackers
Attachments
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>
Commits
-
Improve error message for duplicate labels when creating an enum type.
- 1b1960c8c9e8 19 (unreleased) landed