Re: pgsql: Move pg_stat_statements query jumbling to core.

From: Julien Rouhaud <rjuju123(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Move pg_stat_statements query jumbling to core.
Date: 2021-04-08 06:11:02
Message-ID: 20210408061102.xripofnfvqt7qcrg@nol
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Thu, Apr 08, 2021 at 01:22:49PM +0800, Julien Rouhaud wrote:
> Le jeu. 8 avr. 2021 à 13:17, Andres Freund <andres(at)anarazel(dot)de> a écrit :
>
> >
> > This - or something in the vicinity - seems to break running the
> > regression tests with force_parallel_mode=regress. There's lots of
> > differences like
> >
> > SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE
> > "C";
> > query
> > | calls | rows
> >
> > ------------------------------------------------------------------------------+-------+------
> > SELECT (i + $2 + $3)::INTEGER
> > | 2 | 2
> > SELECT (i + $2)::INTEGER LIMIT $3
> > | 2 | 2
> > - SELECT PLUS_ONE($1)
> > | 2 | 2
> > - SELECT PLUS_TWO($1)
> > | 2 | 2
> > - SELECT pg_stat_statements_reset()
> > | 1 | 1
> > + SELECT PLUS_ONE($1)
> > | 4 | 4
> > + SELECT PLUS_TWO($1)
> > | 4 | 4
> > + SELECT pg_stat_statements_reset();
>
> oh, I think it's because parallel workers now have the queryid of the main
> query. Probably ignoring parallel workers in the executor end hook will fix
> the problem. I'll look at it as soon as I will be back home.

That was indeed the problem. I think the best is to entirely ignore parallel
workers in pg_stat_statements, as done in attached patch, which fixes the
regression tests with force_parallel_mode = regress.

Attachment Content-Type Size
v1-0001-Ignore-parallel-workers-in-pg_stat_statements.patch text/x-diff 1.5 KB

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2021-04-08 06:16:30 Re: pgsql: autovacuum: handle analyze for partitioned tables
Previous Message Thomas Munro 2021-04-08 05:52:18 pgsql: Provide ReadRecentBuffer() to re-pin buffers by ID.