Re: PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice() - Mailing list pgsql-hackers

From Tom Lane
Subject Re: PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()
Date
Msg-id 11859.1472139831@sss.pgh.pa.us
Whole thread Raw
In response to PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()  (Jakob Egger <jakob@eggerapps.at>)
Responses Re: PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
Jakob Egger <jakob@eggerapps.at> writes:
> My PostgreSQL client checks the PG_DIAG_SEVERITY error field to determine the error level.
> However, I have now learned that this field is localized. This means that a server configured with --enable-nls might
forexample return the string ERREUR instead of ERROR.
 

Check.

> So if I want to determine the error level, do I need to compare against all localised variations in my app? Or is
thereanother way?
 

Generally, we've presumed that clients don't really need to know the
difference between error levels, beyond the error-versus-notice
distinction that's embedded in the message type.  If you have an
application where that's actually important, it would be interesting to
know what it is.

> I browsed through the PostgreSQL source and discovered that pq_parse_errornotice() (in src/backend/libpq/pqmq.c) uses
thesame naive strcmp() approach to determine error level. This means that it will fail when the server is compiled with
--enable-nls.I am not sure what the impact of this is, since I couldn't really figure out where that function is used.
 

Ooops.  Indeed, that is broken:

postgres=# select 1/0;  -- using French locale
ERREUR:  division par zéro
postgres=# set force_parallel_mode=1;
SET
postgres=# select stringu1::int2 from tenk1 where unique1 = 1;
ERREUR:  unknown error severity
CONTEXT:  parallel worker

Not sure what we ought to do about that, but we need to do something.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: [PATCH v2] Add overflow checks to money type input function
Next
From: Kuntal Ghosh
Date:
Subject: Re: WAL consistency check facility