diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 14afef6..4308df2 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -3444,6 +3444,7 @@ pgstat_send_bgwriter(void) NON_EXEC_STATIC void PgstatCollectorMain(int argc, char *argv[]) { + unsigned total = 0; int len; PgStat_Msg msg; int wr; @@ -3555,6 +3556,10 @@ PgstatCollectorMain(int argc, char *argv[]) errmsg("could not read statistics message: %m"))); } + elog(LOG, "stats %d: %u + %u = %u", + msg.msg_hdr.m_type, total, len, total + len); + total += len; + /* * We ignore messages that are smaller than our common header */ @@ -3947,6 +3952,13 @@ pgstat_write_statsfiles(bool permanent, bool allDbs) */ fputc('E', fpout); + if (1) + { + PG_SETMASK(&BlockSig); + pg_usleep(3 * 1000000L); + PG_SETMASK(&UnBlockSig); + } + if (ferror(fpout)) { ereport(LOG, diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out index a811265..064cf9f 100644 --- a/src/test/regress/expected/stats.out +++ b/src/test/regress/expected/stats.out @@ -63,6 +63,9 @@ begin SELECT (n_tup_ins > 0) INTO updated3 FROM pg_stat_user_tables WHERE relname='trunc_stats_test'; + raise log 'stats updated as of % snapshot: 1:% 2:% 3:%', + pg_stat_get_snapshot_timestamp(), updated1, updated2, updated3; + exit when updated1 and updated2 and updated3; -- wait a little diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql index b3e2efa..d252124 100644 --- a/src/test/regress/sql/stats.sql +++ b/src/test/regress/sql/stats.sql @@ -58,6 +58,9 @@ begin SELECT (n_tup_ins > 0) INTO updated3 FROM pg_stat_user_tables WHERE relname='trunc_stats_test'; + raise log 'stats updated as of % snapshot: 1:% 2:% 3:%', + pg_stat_get_snapshot_timestamp(), updated1, updated2, updated3; + exit when updated1 and updated2 and updated3; -- wait a little