mirror of
https://github.com/postgres/postgres.git
synced 2025-11-24 00:23:06 +03:00
hash: Refactor bucket squeeze code.
In preparation for adding write-ahead logging to hash indexes, refactor _hash_freeovflpage and _hash_squeezebucket so that all related page modifications happen in a single section of code. The previous coding assumed that it would be fine to move tuples one at a time, and also that the various operations involved in freeing an overflow page didn't necessarily all need to be done together, all of which is true if you don't care about write-ahead logging. Amit Kapila, with slight changes by me.
This commit is contained in:
@@ -425,6 +425,7 @@ extern Page PageGetTempPageCopySpecial(Page page);
|
||||
extern void PageRestoreTempPage(Page tempPage, Page oldPage);
|
||||
extern void PageRepairFragmentation(Page page);
|
||||
extern Size PageGetFreeSpace(Page page);
|
||||
extern Size PageGetFreeSpaceForMultipleTuples(Page page, int ntups);
|
||||
extern Size PageGetExactFreeSpace(Page page);
|
||||
extern Size PageGetHeapFreeSpace(Page page);
|
||||
extern void PageIndexTupleDelete(Page page, OffsetNumber offset);
|
||||
|
||||
Reference in New Issue
Block a user