mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
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
This commit is contained in:
@ -71,6 +71,7 @@
|
||||
#include "parser/parse_type.h"
|
||||
#include "parser/parse_utilcmd.h"
|
||||
#include "parser/parser.h"
|
||||
#include "pgstat.h"
|
||||
#include "rewrite/rewriteDefine.h"
|
||||
#include "rewrite/rewriteHandler.h"
|
||||
#include "rewrite/rewriteManip.h"
|
||||
@ -1220,6 +1221,8 @@ ExecuteTruncate(TruncateStmt *stmt)
|
||||
*/
|
||||
reindex_relation(heap_relid, REINDEX_REL_PROCESS_TOAST);
|
||||
}
|
||||
|
||||
pgstat_count_truncate(rel);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user