mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Add new function log_newpage_buffer.
When I implemented the ginbuildempty() function as part of implementing unlogged tables, I falsified the note in the header comment for log_newpage. Although we could fix that up by changing the comment, it seems cleaner to add a new function which is specifically intended to handle this case. So do that.
This commit is contained in:
@ -520,20 +520,14 @@ ginbuildempty(PG_FUNCTION_ARGS)
|
||||
ReadBufferExtended(index, INIT_FORKNUM, P_NEW, RBM_NORMAL, NULL);
|
||||
LockBuffer(RootBuffer, BUFFER_LOCK_EXCLUSIVE);
|
||||
|
||||
/* Initialize both pages, mark them dirty, unlock and release buffer. */
|
||||
/* Initialize and xlog metabuffer and root buffer. */
|
||||
START_CRIT_SECTION();
|
||||
GinInitMetabuffer(MetaBuffer);
|
||||
MarkBufferDirty(MetaBuffer);
|
||||
log_newpage_buffer(MetaBuffer);
|
||||
GinInitBuffer(RootBuffer, GIN_LEAF);
|
||||
MarkBufferDirty(RootBuffer);
|
||||
|
||||
/* XLOG the new pages */
|
||||
log_newpage(&index->rd_smgr->smgr_rnode.node, INIT_FORKNUM,
|
||||
BufferGetBlockNumber(MetaBuffer),
|
||||
BufferGetPage(MetaBuffer));
|
||||
log_newpage(&index->rd_smgr->smgr_rnode.node, INIT_FORKNUM,
|
||||
BufferGetBlockNumber(RootBuffer),
|
||||
BufferGetPage(RootBuffer));
|
||||
log_newpage_buffer(RootBuffer);
|
||||
END_CRIT_SECTION();
|
||||
|
||||
/* Unlock and release the buffers. */
|
||||
|
Reference in New Issue
Block a user