Add a function pg_stat_clear_snapshot() that discards any statistics snapshot
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 7 Feb 2007 23:11:30 +0000 (23:11 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 7 Feb 2007 23:11:30 +0000 (23:11 +0000)
commitc48e3658e5badbf0f862b06d4f58e263320de939
treec832995841377bceb290857432446ad6ed00ddc4
parentc8fad111d3db5b6d0ba373db045af4b4846d8624
Add a function pg_stat_clear_snapshot() that discards any statistics snapshot
already collected in the current transaction; this allows plpgsql functions to
watch for stats updates even though they are confined to a single transaction.
Use this instead of the previous kluge involving pg_stat_file() to wait for
the stats collector to update in the stats regression test.  Internally,
decouple storage of stats snapshots from transaction boundaries; they'll
now stick around until someone calls pgstat_clear_snapshot --- which xact.c
still does at transaction end, to maintain the previous behavior.  This makes
the logic a lot cleaner, at the price of a couple dozen cycles per transaction
exit.
doc/src/sgml/monitoring.sgml
src/backend/access/transam/xact.c
src/backend/postmaster/pgstat.c
src/backend/utils/adt/pgstatfuncs.c
src/include/catalog/catversion.h
src/include/catalog/pg_proc.h
src/include/pgstat.h
src/test/regress/expected/stats.out
src/test/regress/sql/stats.sql