Re: WHEN SQLSTATE '00000' THEN equals to WHEN OTHERS THEN

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: David Fiedler <david(dot)fido(dot)fiedler(at)gmail(dot)com>
Cc: pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: WHEN SQLSTATE '00000' THEN equals to WHEN OTHERS THEN
Date: 2025-03-19 15:29:50
Message-ID: 706649.1742398190@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs pgsql-hackers

David Fiedler <david(dot)fido(dot)fiedler(at)gmail(dot)com> writes:
> I've stumbled across a code that used this condition, resulting in
> unexpected behavior. I think it worths a note that catching 00000 is not
> possible and that it results in a catch all handler.

Hmph. The code thinks

* OTHERS is represented as code 0 (which would map to '00000', but we
* have no need to represent that as an exception condition).

but it evidently didn't consider the possibility of a user writing
'00000'. I'm more inclined to consider this a bug and change plpgsql
to use something else internally to represent OTHERS. We could use
-1, which AFAICS cannot be generated by MAKE_SQLSTATE.

regards, tom lane

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Laurenz Albe 2025-03-19 15:32:20 Re: WHEN SQLSTATE '00000' THEN equals to WHEN OTHERS THEN
Previous Message David Fiedler 2025-03-19 14:03:34 WHEN SQLSTATE '00000' THEN equals to WHEN OTHERS THEN

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2025-03-19 15:31:22 Re: optimize file transfer in pg_upgrade
Previous Message Nathan Bossart 2025-03-19 15:01:26 Re: PATCH: warn about, and deprecate, clear text passwords