diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index ab018c4..e6f04b0 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -3314,6 +3314,7 @@ pgstat_send_bgwriter(void) NON_EXEC_STATIC void PgstatCollectorMain(int argc, char *argv[]) { + unsigned total = 0; int len; PgStat_Msg msg; int wr; @@ -3425,6 +3426,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 */ @@ -3817,6 +3822,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 f5be70f..b042062 100644 --- a/src/test/regress/expected/stats.out +++ b/src/test/regress/expected/stats.out @@ -47,6 +47,9 @@ begin FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats AS pr WHERE st.relname='tenk2' AND cl.relname='tenk2'; + raise log 'stats updated as of % snapshot: %', + pg_stat_get_snapshot_timestamp(), updated; + exit when updated; -- wait a little diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql index cd2d592..e87454d 100644 --- a/src/test/regress/sql/stats.sql +++ b/src/test/regress/sql/stats.sql @@ -42,6 +42,9 @@ begin FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats AS pr WHERE st.relname='tenk2' AND cl.relname='tenk2'; + raise log 'stats updated as of % snapshot: %', + pg_stat_get_snapshot_timestamp(), updated; + exit when updated; -- wait a little