Re: Unrecognized exception condition "deprecated_feature"

Kouber Saparev <kouber@gmail.com>

From: Kouber Saparev <kouber@gmail.com>
To: "David G. Johnston" <david.g.johnston@gmail.com>
Cc: Postgres Bug <pgsql-bugs@postgresql.org>
Date: 2018-03-09T22:28:48Z
Lists: pgsql-bugs
Here's a working example with 'unique_violation' for instance:

postgres=# DO $$
BEGIN
 RAISE WARNING 'Example of working exception condition'

   USING ERRCODE = 'unique_violation';
END;
$$;
WARNING:  Example of working exception condition
DO

postgres=# DO $$
BEGIN
 RAISE WARNING 'Example of working exception condition (with code)'
   USING ERRCODE = '23505';
END;
$$;
WARNING:  Example of working exception condition (with code)
DO

postgres=# select error_severity, message from sqlog.log('today') where
sql_state_code = '23505';
 error_severity |                      message
----------------+----------------------------------------------------
 WARNING        | Example of working exception condition
 WARNING        | Example of working exception condition (with code)
(2 rows)

2018-03-09 21:00 GMT+02:00 David G. Johnston <david.g.johnston@gmail.com>:

> 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