Have TRUNCATE update pgstat tuple counters
Alvaro Herrera <alvherre@alvh.no-ip.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/commands/tablecmds.c | modified | +3 −0 |
| src/backend/postmaster/pgstat.c | modified | +107 −3 |
| src/include/pgstat.h | modified | +6 −0 |
| src/test/regress/expected/prepared_xacts_1.out | modified | +53 −0 |
| src/test/regress/expected/prepared_xacts.out | modified | +50 −0 |
| src/test/regress/expected/stats.out | modified | +64 −0 |
| src/test/regress/sql/prepared_xacts.sql | modified | +27 −0 |
| src/test/regress/sql/stats.sql | modified | +64 −0 |