PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()

From: Jakob Egger <jakob(at)eggerapps(dot)at>
To: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()
Date: 2016-08-25 15:22:38
Message-ID: A88E0006-13CB-49C6-95CC-1A77D717213C@eggerapps.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

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.

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?

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.

Best regards,
Jakob

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2016-08-25 15:31:03 Re: increasing the default WAL segment size
Previous Message Simon Riggs 2016-08-25 15:21:33 Re: increasing the default WAL segment size