From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: legrand legrand <legrand_legrand@hotmail.com>
To: pgsql-bugs@postgresql.org
Subject: Re: pg_stat_statements: rows not updated for CREATE TABLE AS SELECT statements
Date: Thu, 26 Mar 2020 21:41:34 +0900
Message-ID: <c9463107-d605-9d9e-54e5-f065f2fc3c1f@oss.nttdata.com> (raw)
In-Reply-To: <1584293755198-0.post@n3.nabble.com>
References: <1584293755198-0.post@n3.nabble.com>
On 2020/03/16 2:35, legrand legrand wrote:
> Hello,
> it seems that column "rows" is not updated after CREATE TABLE AS SELECT
> statements.
>
> pg13devel (snapshot 2020-03-14)
> postgres=# select name,setting from pg_settings where name like 'pg_stat%';
> name | setting
> ----------------------------------+---------
> pg_stat_statements.max | 5000
> pg_stat_statements.save | on
> pg_stat_statements.track | all
> pg_stat_statements.track_utility | on
> (4 rows)
>
> postgres=# select pg_stat_statements_reset();
> pg_stat_statements_reset
> --------------------------
>
> (1 row)
>
>
> postgres=# create table ctas as select * from pg_class;
> SELECT 386
> postgres=# select query,calls,rows from pg_stat_statements where query like
> 'create table ctas%';
> query | calls | rows
> ---------------------------------------------+-------+------
> create table ctas as select * from pg_class | 1 | 0
> (1 row)
Thanks for the report! Yeah, it seems worth improving this.
> after modifying the following line in pg_stat_statements.c
>
> rows = (qc && qc->commandTag == CMDTAG_COPY) ? qc->nprocessed : 0;
> into
> rows = (qc && (qc->commandTag == CMDTAG_COPY
> || qc->commandTag == CMDTAG_SELECT)
> ) ? qc->nprocessed : 0;
>
> column rows seems properly updated.
>
> What do you think about that fix ?
The utility commands that return CMDTAG_SELECT are
only CREATE TABLE AS SELECT and CREATE MATERIALIZED VIEW?
I'd just like to confirm that there is no case where "rows" must not
be counted when CMDTAG_SELECT is returned.
BTW, "rows" should be updated when FETCH or MOVE is executed
because each command returns or affects the rows?
Regards,
--
Fujii Masao
NTT DATA CORPORATION
Advanced Platform Technology Group
Research and Development Headquarters
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: masao.fujii@oss.nttdata.com, legrand_legrand@hotmail.com
Subject: Re: pg_stat_statements: rows not updated for CREATE TABLE AS SELECT statements
In-Reply-To: <c9463107-d605-9d9e-54e5-f065f2fc3c1f@oss.nttdata.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox