Re: BUG #18134: ROW_COUNT do not set to 0 when psql's \gset command get no rows returned
Japin Li <japinli@hotmail.com>
From: Japin Li <japinli@hotmail.com>
To: amutu@amutu.com, pgsql-bugs@lists.postgresql.org
Date: 2023-09-27T10:00:58Z
Lists: pgsql-bugs
Attachments
- fix-bug-18134.patch (text/x-diff) patch
- (unnamed) (text/plain)
On Tue, 26 Sep 2023 at 09:26, PG Bug reporting form <noreply@postgresql.org> wrote: > The following bug has been logged on the website: > > Bug reference: 18134 > Logged by: amutu > Email address: amutu@amutu.com > PostgreSQL version: 15.4 > Operating system: FreeBSD 13.2-RELEASE amd64 > Description: > > reproduce steps: > > $psql postgres > psql (15.4) > Type "help" for help. > > postgres=# select * from cmdq where status= 'new' \gset > no rows returned for \gset > postgres=# \echo :ROW_COUNT > :ROW_COUNT > postgres=# select * from cmdq; > cmd | src_ip | worker | status | ts | id > > ---------+-----------+--------+--------+-------------------------------+---- > ls /tmp | 127.0.0.1 | | done | 2023-09-23 14:39:59.047309+08 | > 1 > (1 row) > > postgres=# \echo :ROW_COUNT > 1 > postgres=# select * from cmdq where status= 'new' \gset > no rows returned for \gset > postgres=# \echo :ROW_COUNT > 1 > ------------------------------------------------ > from the psql doc: > ROW_COUNT > The number of rows returned or affected by the last SQL query, !!!!or 0 if > the query failed or did not report a row count.!!!! It seems SaveResultVariables() was lost when executing failed. Attached fix it.
Commits
-
psql: Set variables from query result on failure when printing tuples
- 2940f1c8373c 17.0 landed