Re: pgsql: Move pg_stat_statements query jumbling to core.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: pgsql: Move pg_stat_statements query jumbling to core.
Дата
Msg-id 20210408051735.lfbdzun5zdlax5gd@alap3.anarazel.de
обсуждение исходный текст
Ответ на pgsql: Move pg_stat_statements query jumbling to core.  (Bruce Momjian <bruce@momjian.us>)
Ответы Re: pgsql: Move pg_stat_statements query jumbling to core.  (Julien Rouhaud <rjuju123@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: pgsql: Cope with NULL query string in ExecInitParallelPlan().
Следующее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: autovacuum: handle analyze for partitioned tables