Jakob Egger <ja...@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 for example 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 there another 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 the same 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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers