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

From Tom Lane
Subject Re: BUG #18134: ROW_COUNT do not set to 0 when psql's \gset command get no rows returned
Date
Msg-id 1615012.1696121047@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #18134: ROW_COUNT do not set to 0 when psql's \gset command get no rows returned  (Michael Paquier <michael@paquier.xyz>)
Responses Re: BUG #18134: ROW_COUNT do not set to 0 when psql's \gset command get no rows returned  (Michael Paquier <michael@paquier.xyz>)
List 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



pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #18135: Incorrect memory access occurs when attaching a partition with an index
Next
From: Michael Paquier
Date:
Subject: Re: BUG #18134: ROW_COUNT do not set to 0 when psql's \gset command get no rows returned