Re: pgsql: Move pg_stat_statements query jumbling to core. - Mailing list pgsql-committers
From | Andres Freund |
---|---|
Subject | Re: pgsql: Move pg_stat_statements query jumbling to core. |
Date | |
Msg-id | 20210408051735.lfbdzun5zdlax5gd@alap3.anarazel.de Whole thread Raw |
In response to | pgsql: Move pg_stat_statements query jumbling to core. (Bruce Momjian <bruce@momjian.us>) |
Responses |
Re: pgsql: Move pg_stat_statements query jumbling to core.
|
List | 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
pgsql-committers by date: