[patch] ENUM errdetail should mention bytes, not chars

Ian Lawrence Barwick <barwick@gmail.com>

From: Ian Lawrence Barwick <barwick@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-10-19T04:18:07Z
Lists: pgsql-hackers

Attachments

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

Commits

  1. Fix enum errdetail to mention bytes, not chars