]> granicus.if.org Git - postgresql/commit
Have TRUNCATE update pgstat tuple counters
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 20 Feb 2015 15:10:01 +0000 (12:10 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 20 Feb 2015 15:10:01 +0000 (12:10 -0300)
commitd42358efb16cc81122c53ffb35ac381b9158e519
tree1358afb9c3db05813fdc64de89955561d23441e9
parent5740be6d6e39dd85587aa71b3bd1fb0a423858b0
Have TRUNCATE update pgstat tuple counters

This works by keeping a per-subtransaction record of the ins/upd/del
counters before the truncate, and then resetting them; this record is
useful to return to the previous state in case the truncate is rolled
back, either in a subtransaction or whole transaction.  The state is
propagated upwards as subtransactions commit.

When the per-table data is sent to the stats collector, a flag indicates
to reset the live/dead counters to zero as well.

Catalog version bumped due to the change in pgstat format.

Author: Alexander Shulgin
Discussion: 1007.1207238291@sss.pgh.pa.us
Discussion: 548F7D38.2000401@BlueTreble.com
Reviewed-by: Álvaro Herrera, Jim Nasby
src/backend/commands/tablecmds.c
src/backend/postmaster/pgstat.c
src/include/pgstat.h
src/test/regress/expected/prepared_xacts.out
src/test/regress/expected/prepared_xacts_1.out
src/test/regress/expected/stats.out
src/test/regress/sql/prepared_xacts.sql
src/test/regress/sql/stats.sql