Re: Number of updated rows with LibPQ - Mailing list pgsql-general

From Laurenz Albe
Subject Re: Number of updated rows with LibPQ
Date
Msg-id 830241525f7fefeab2000203b6fcf0a6b815ee6e.camel@cybertec.at
Whole thread Raw
In response to Number of updated rows with LibPQ  (Dominique Devienne <ddevienne@gmail.com>)
List pgsql-general
On Wed, 2022-10-05 at 16:38 +0200, Dominique Devienne wrote:
> Hi,
> 
> Is there a way to programmatically now how many rows an UPDATE did update?
> I've read about [PQcmdTuples][1], but surely I shouldn't have to parse
> that string, no?
> For selects, I have [PQnTuples][2], but what to do on INSERT, UPDATE, DELETE?
> Parse the result of PQcmdTuples myself??? If so, what's the 0 in the
> INSERT below?
> Is the output of PQcmdTuples "stable", i.e. "official"? Not locale dependent?
> 
> Thanks, --DD
> 
> [1]: https://www.postgresql.org/docs/14/libpq-exec.html#LIBPQ-PQCMDTUPLES
> [2]: https://www.postgresql.org/docs/14/libpq-exec.html#LIBPQ-PQNTUPLES
> 
> postgres=# create table foo (v int);
> CREATE TABLE
> postgres=# insert into foo values (1), (2), (3);
> INSERT 0 3
> postgres=# update foo set v = 2*v where v = 2;
> UPDATE 1
> postgres=# delete from foo where v = 3;
> DELETE 1
> postgres=# select v from foo where v > 1;
> ...
> (1 row)
> postgres=# delete from foo;
> DELETE 2
> postgres=# drop table foo;
> DROP TABLE
> postgres=#

Yes, you have to use PQcmdTuples(), and you have to convert the string to an integer.

But don't worry: the result will *not* be "INSERT 0 5", it will be just "5", so
you won't have to parse anything.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com



pgsql-general by date:

Previous
From: Dominique Devienne
Date:
Subject: Number of updated rows with LibPQ
Next
From: Kaushal Shriyan
Date:
Subject: Replication between Master PostgreSQL database version 9.6.1 and Standby/Slave PostgreSQL database version 10.17.