-
- Downloads
Rethink the way FSM truncation works. Instead of WAL-logging FSM
truncations in FSM code, call FreeSpaceMapTruncateRel from smgr_redo. To make that cleaner from modularity point of view, move the WAL-logging one level up to RelationTruncate, and move RelationTruncate and all the related WAL-logging to new src/backend/catalog/storage.c file. Introduce new RelationCreateStorage and RelationDropStorage functions that are used instead of calling smgrcreate/smgrscheduleunlink directly. Move the pending rel deletion stuff from smgrcreate/smgrscheduleunlink to the new functions. This leaves smgr.c as a thin wrapper around md.c; all the transactional stuff is now in storage.c. This will make it easier to add new forks with similar truncation logic, like the visibility map.
Showing
- src/backend/access/gin/gininsert.c 1 addition, 4 deletionssrc/backend/access/gin/gininsert.c
- src/backend/access/gin/ginvacuum.c 2 additions, 2 deletionssrc/backend/access/gin/ginvacuum.c
- src/backend/access/gist/gist.c 1 addition, 4 deletionssrc/backend/access/gist/gist.c
- src/backend/access/gist/gistvacuum.c 2 additions, 2 deletionssrc/backend/access/gist/gistvacuum.c
- src/backend/access/heap/heapam.c 2 additions, 4 deletionssrc/backend/access/heap/heapam.c
- src/backend/access/nbtree/nbtree.c 2 additions, 5 deletionssrc/backend/access/nbtree/nbtree.c
- src/backend/access/transam/rmgr.c 3 additions, 3 deletionssrc/backend/access/transam/rmgr.c
- src/backend/access/transam/twophase.c 42 additions, 31 deletionssrc/backend/access/transam/twophase.c
- src/backend/access/transam/xact.c 28 additions, 20 deletionssrc/backend/access/transam/xact.c
- src/backend/access/transam/xlogutils.c 2 additions, 2 deletionssrc/backend/access/transam/xlogutils.c
- src/backend/catalog/Makefile 2 additions, 2 deletionssrc/backend/catalog/Makefile
- src/backend/catalog/heap.c 6 additions, 21 deletionssrc/backend/catalog/heap.c
- src/backend/catalog/index.c 9 additions, 33 deletionssrc/backend/catalog/index.c
- src/backend/catalog/storage.c 462 additions, 0 deletionssrc/backend/catalog/storage.c
- src/backend/commands/tablecmds.c 13 additions, 8 deletionssrc/backend/commands/tablecmds.c
- src/backend/commands/vacuum.c 2 additions, 3 deletionssrc/backend/commands/vacuum.c
- src/backend/commands/vacuumlazy.c 2 additions, 2 deletionssrc/backend/commands/vacuumlazy.c
- src/backend/rewrite/rewriteDefine.c 3 additions, 12 deletionssrc/backend/rewrite/rewriteDefine.c
- src/backend/storage/buffer/bufmgr.c 1 addition, 23 deletionssrc/backend/storage/buffer/bufmgr.c
- src/backend/storage/freespace/freespace.c 32 additions, 125 deletionssrc/backend/storage/freespace/freespace.c
Loading
Please register or sign in to comment