From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | Re: pgsql: Move pg_stat_statements query jumbling to core. |
Date: | 2021-04-08 05:17:35 |
Message-ID: | 20210408051735.lfbdzun5zdlax5gd@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Hi,
On 2021-04-07 17:06:59 +0000, Bruce Momjian wrote:
> Move pg_stat_statements query jumbling to core.
>
> Add compute_query_id GUC to control whether a query identifier should be
> computed by the core (off by default). It's thefore now possible to
> disable core queryid computation and use pg_stat_statements with a
> different algorithm to compute the query identifier by using a
> third-party module.
>
> To ensure that a single source of query identifier can be used and is
> well defined, modules that calculate a query identifier should throw an
> error if compute_query_id specified to compute a query id and if a query
> idenfitier was already calculated.
>
> Discussion: https://postgr.es/m/20210407125726.tkvjdbw76hxnpwfi@nol
>
> Author: Julien Rouhaud
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(); | 2 | 2
SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C" | 0 | 0
(6 rows)
SELECT calls, query FROM pg_stat_statements ORDER BY query COLLATE "C";
calls | query
-------+------------------------------------------------------------------------------------------
- 1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id
+ 2 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR KEY SHARE
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR NO KEY UPDATE
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR SHARE
2 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR UPDATE
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR UPDATE NOWAIT
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR UPDATE OF pgss_a
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR UPDATE OF pgss_b
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR UPDATE OF pgss_b, pgss_a
1 | SELECT * FROM pgss_a JOIN pgss_b ON pgss_b.a_id = pgss_a.id FOR UPDATE SKIP LOCKED
0 | SELECT calls, query FROM pg_stat_statements ORDER BY query COLLATE "C"
- 1 | SELECT pg_stat_statements_reset()
+ 2 | SELECT pg_stat_statements_reset();
(12 rows)
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2021-04-08 05:20:39 | pgsql: autovacuum: handle analyze for partitioned tables |
Previous Message | Andres Freund | 2021-04-08 05:11:46 | pgsql: Cope with NULL query string in ExecInitParallelPlan(). |