diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2015-02-20 12:10:01 -0300 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2015-02-20 12:10:01 -0300 |
commit | d42358efb16cc81122c53ffb35ac381b9158e519 (patch) | |
tree | 1358afb9c3db05813fdc64de89955561d23441e9 /src/backend/commands/tablecmds.c | |
parent | 5740be6d6e39dd85587aa71b3bd1fb0a423858b0 (diff) | |
download | postgresql-d42358efb16cc81122c53ffb35ac381b9158e519.tar.gz postgresql-d42358efb16cc81122c53ffb35ac381b9158e519.zip |
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
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r-- | src/backend/commands/tablecmds.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 66d5083e4aa..b2993b80fbc 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -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); } /* |