pg_stat_statements: Fix test that assumes wal_records = rows.
authorRobert Haas <[email protected]>
Wed, 6 Jul 2022 17:05:51 +0000 (13:05 -0400)
committerRobert Haas <[email protected]>
Wed, 6 Jul 2022 17:05:51 +0000 (13:05 -0400)
It's not very robust to assume that each inserted row will produce
exactly one WAL record and that no other WAL records will be generated
in the process, because for example a particular transaction could
always be the one that has to extend clog.

Because these tests are not run by 'make installcheck' but only by
'make check', it may be that in our current testing infrastructure
this can't be hit, but it doesn't seem like a good idea to rely on
that, since unrelated changes to the regression tests or the way
write-ahead logging is done could easily cause it to start happening,
and debugging such failures is a pain.

Adjust the regression test to be less sensitive.

Anton Melnikov, reviewed by Julien Rouhaud

Discussion: http://postgr.es/m/1ccd00d9-1723-6b68-ae56-655aab00d406@inbox.ru

contrib/pg_stat_statements/expected/pg_stat_statements.out
contrib/pg_stat_statements/sql/pg_stat_statements.sql

index 8f7f93172a250657199e76f87eedfde8ba0960cf..ff0166fb9d20821a3667d6d8be0e03faf7583959 100644 (file)
@@ -259,18 +259,18 @@ SET pg_stat_statements.track_utility = FALSE;
 SELECT query, calls, rows,
 wal_bytes > 0 as wal_bytes_generated,
 wal_records > 0 as wal_records_generated,
-wal_records = rows as wal_records_as_rows
+wal_records >= rows as wal_records_ge_rows
 FROM pg_stat_statements ORDER BY query COLLATE "C";
-                           query                           | calls | rows | wal_bytes_generated | wal_records_generated | wal_records_as_rows 
+                           query                           | calls | rows | wal_bytes_generated | wal_records_generated | wal_records_ge_rows 
 -----------------------------------------------------------+-------+------+---------------------+-----------------------+---------------------
  DELETE FROM pgss_test WHERE a > $1                        |     1 |    1 | t                   | t                     | t
- DROP TABLE pgss_test                                      |     1 |    0 | t                   | t                     | f
+ DROP TABLE pgss_test                                      |     1 |    0 | t                   | t                     | t
  INSERT INTO pgss_test VALUES(generate_series($1, $2), $3) |     1 |   10 | t                   | t                     | t
  SELECT pg_stat_statements_reset()                         |     1 |    1 | f                   | f                     | f
  SELECT query, calls, rows,                               +|     0 |    0 | f                   | f                     | t
  wal_bytes > $1 as wal_bytes_generated,                   +|       |      |                     |                       | 
  wal_records > $2 as wal_records_generated,               +|       |      |                     |                       | 
- wal_records = rows as wal_records_as_rows                +|       |      |                     |                       | 
+ wal_records >= rows as wal_records_ge_rows               +|       |      |                     |                       | 
  FROM pg_stat_statements ORDER BY query COLLATE "C"        |       |      |                     |                       | 
  SET pg_stat_statements.track_utility = FALSE              |     1 |    0 | f                   | f                     | t
  UPDATE pgss_test SET b = $1 WHERE a > $2                  |     1 |    3 | t                   | t                     | t
index dffd2c8c18707bbb317b40bc320fc4e4c8bb9470..a01f183727763f02851593ede6dadc20c596d286 100644 (file)
@@ -122,7 +122,7 @@ SET pg_stat_statements.track_utility = FALSE;
 SELECT query, calls, rows,
 wal_bytes > 0 as wal_bytes_generated,
 wal_records > 0 as wal_records_generated,
-wal_records = rows as wal_records_as_rows
+wal_records >= rows as wal_records_ge_rows
 FROM pg_stat_statements ORDER BY query COLLATE "C";
 
 --