Thread: [patch] ENUM errdetail should mention bytes, not chars
Hi The errdetail emitted when creating/modifying an ENUM value is misleading: postgres=# CREATE TYPE enum_valtest AS ENUM ( 'foo', 'ああああああああああああああああああああああ' ); ERROR: invalid enum label "ああああああああああああああああああああああ" DETAIL: Labels must be 63 characters or less. Attached trivial patch changes the message to: DETAIL: Labels must be 63 bytes or less. This matches the documentation, which states: The length of an enum value's textual label is limited by the NAMEDATALEN setting compiled into PostgreSQL; in standard builds this means at most 63 bytes. https://www.postgresql.org/docs/current/datatype-enum.html I don't see any particular need to backpatch this. Regards Ian Barwick -- EnterpriseDB: https://www.enterprisedb.com
Attachment
On Mon, Oct 19, 2020 at 12:18 PM Ian Lawrence Barwick <barwick@gmail.com> wrote: > > Hi > > The errdetail emitted when creating/modifying an ENUM value is misleading: > > postgres=# CREATE TYPE enum_valtest AS ENUM ( > 'foo', > 'ああああああああああああああああああああああ' > ); > ERROR: invalid enum label "ああああああああああああああああああああああ" > DETAIL: Labels must be 63 characters or less. > > Attached trivial patch changes the message to: > > DETAIL: Labels must be 63 bytes or less. > > This matches the documentation, which states: > > The length of an enum value's textual label is limited by the NAMEDATALEN > setting compiled into PostgreSQL; in standard builds this means at most > 63 bytes. > > https://www.postgresql.org/docs/current/datatype-enum.html > > I don't see any particular need to backpatch this. Indeed the message is wrong, and patch LGTM.
On 2020-10-19 06:34, Julien Rouhaud wrote: >> ERROR: invalid enum label "ああああああああああああああああああああああ" >> DETAIL: Labels must be 63 characters or less. >> >> Attached trivial patch changes the message to: >> >> DETAIL: Labels must be 63 bytes or less. >> >> This matches the documentation, which states: >> >> The length of an enum value's textual label is limited by the NAMEDATALEN >> setting compiled into PostgreSQL; in standard builds this means at most >> 63 bytes. >> >> https://www.postgresql.org/docs/current/datatype-enum.html >> >> I don't see any particular need to backpatch this. > > Indeed the message is wrong, and patch LGTM. Committed. Btw., the patch didn't update the regression test output. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
2020年10月27日(火) 20:00 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>: > > On 2020-10-19 06:34, Julien Rouhaud wrote: > >> ERROR: invalid enum label "ああああああああああああああああああああああ" > >> DETAIL: Labels must be 63 characters or less. > >> > >> Attached trivial patch changes the message to: > >> > >> DETAIL: Labels must be 63 bytes or less. > >> > >> This matches the documentation, which states: > >> > >> The length of an enum value's textual label is limited by the NAMEDATALEN > >> setting compiled into PostgreSQL; in standard builds this means at most > >> 63 bytes. > >> > >> https://www.postgresql.org/docs/current/datatype-enum.html > >> > >> I don't see any particular need to backpatch this. > > > > Indeed the message is wrong, and patch LGTM. > > Committed. Thanks! > Btw., the patch didn't update the regression test output. Whoops... /me hangs head in shame and slinks away... Regards Ian Barwick -- EnterpriseDB: https://www.enterprisedb.com