Re: Unrecognized exception condition "deprecated_feature"

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Kouber Saparev <kouber@gmail.com>
Cc: Postgres Bug <pgsql-bugs@postgresql.org>
Date: 2018-03-09T19:00:33Z
Lists: pgsql-bugs
On Fri, Mar 9, 2018 at 11:55 AM, Kouber Saparev <kouber@gmail.com> wrote:

> For some reason using an error code of 'deprecated_feature' does not work,
> while its equivalent '01P01' works just fine.
>
> kouber=# DO $$
> BEGIN
>  RAISE WARNING 'Deprecated'
>    USING ERRCODE = 'deprecated_feature';
> END;
> $$;
> ERROR:  unrecognized exception condition "deprecated_feature"
> CONTEXT:  PL/pgSQL function inline_code_block line 3 at RAISE
>
> kouber=# DO $$
> BEGIN
>  RAISE WARNING 'Deprecated'
>    USING ERRCODE = '01P01';
>
> ​[...]​

> kouber@spectre:~/src/postgres$ grep -r deprecated_feature .
>
> ./src/backend/utils/errcodes.txt:01P01    W    ERRCODE_WARNING_DEPRECATED_FEATURE
>                             deprecated_feature
>
> I am using PostgreSQL 10.1, I apologize in case it has already been fixed
> in 10.2 or 10.3.
>

​While I haven't looked at the source code or docs for this I'm wondering
why you believe this is a bug in the first place.  If "01P01" is a valid
and expected value for ERRCODE I would expect that the textual string label
representing it would not be.​  The two are not likely to be
interchangeable.  Have you found working code where this is does work as
you expect?

David J.

Commits

  1. Install errcodes.txt for use by extensions.

  2. Adjust input routines for float4, float8 and oid to reject the empty string

  3. Emit a warning when an empty string is input to the oid, float4, and