Re: BUG #18134: ROW_COUNT do not set to 0 when psql's \gset command get no rows returned

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: Japin Li <japinli@hotmail.com>, amutu@amutu.com, pgsql-bugs@lists.postgresql.org
Date: 2023-10-01T00:44:07Z
Lists: pgsql-bugs
Michael Paquier <michael@paquier.xyz> writes:
> On Wed, Sep 27, 2023 at 06:00:58PM +0800, Japin Li wrote:
>> It seems SaveResultVariables() was lost when executing failed. Attached fix it.

> Yeah, I think that you're right here, the variables should be set.
> SetResultVariables() ought to be called even if \gset failed to return
> a result.

Agreed.  The adjacent comment is now a lie though.  Maybe just

- 		/* set variables on last result if all went well */
+ 		/* set variables from last result */

Bigger-picture question: should we back-patch this, or just fix it in
HEAD?  It's wrong, but I'm not sure it's so obviously wrong that there
could not be somebody depending on the existing behavior.

			regards, tom lane



Commits

  1. psql: Set variables from query result on failure when printing tuples