Hi all, When doing a set of ON COMMIT DELETE ROWS actions for relations, there is a CCI happening after each truncation: @@ -13334,10 +13334,8 @@ PreCommit_on_commit_actions(void) * exists at truncation time. */ if (oids_to_truncate != NIL) - { heap_truncate(oids_to_truncate); - CommandCounterIncrement(); /* XXX needed? */ - } This has been visibly introduced by f9b5b41 back in 2002 which reworked how ON COMMIT works.
Alvaro has mentioned that it would not be needed here: 20181106125337.o23kjdv546bu2tei@alvherre.pgsql And I think that I agree with that, because visibly this applies to index rebuilds but in those cases CCIs are happening locally. So I think that we can get rid of that, and I suggest to remove it only on HEAD only of course. Any objections? -- Michael
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 82989158ee..946119fa86 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -13334,10 +13334,8 @@ PreCommit_on_commit_actions(void) * exists at truncation time. */ if (oids_to_truncate != NIL) - { heap_truncate(oids_to_truncate); - CommandCounterIncrement(); /* XXX needed? */ - } + if (oids_to_drop != NIL) { ObjectAddresses *targetObjects = new_object_addresses();
signature.asc
Description: PGP signature