Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitefb2a1a

Browse files
committed
Merge branch 'PGPROEE96_ptrack1_2' into PGPROEE9_6
2 parents2ed7ab1 +46441e6 commitefb2a1a

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

‎src/backend/access/transam/generic_xlog.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
#include"access/generic_xlog.h"
1717
#include"access/xlogutils.h"
18+
#include"access/ptrack.h"
1819
#include"miscadmin.h"
1920
#include"utils/memutils.h"
2021

@@ -305,10 +306,18 @@ GenericXLogRegisterBuffer(GenericXLogState *state, Buffer buffer, int flags)
305306

306307
if (BufferIsInvalid(page->buffer))
307308
{
309+
RelFileNodernode;
310+
BlockNumberblkno;
311+
ForkNumberforkno;
312+
308313
/* Empty slot, so use it (there cannot be a match later) */
309314
page->buffer=buffer;
310315
page->flags=flags;
311316
memcpy(page->image,BufferGetPage(buffer),BLCKSZ);
317+
318+
BufferGetTag(buffer,&rnode,&forkno,&blkno);
319+
if (forkno==MAIN_FORKNUM)
320+
ptrack_add_block_redo(rnode,blkno);
312321
return (Page)page->image;
313322
}
314323
elseif (page->buffer==buffer)
@@ -490,13 +499,18 @@ generic_redo(XLogReaderState *record)
490499
for (block_id=0;block_id <=record->max_block_id;block_id++)
491500
{
492501
XLogRedoActionaction;
502+
RelFileNodernode;
503+
BlockNumberblkno;
493504

494505
if (!XLogRecHasBlockRef(record,block_id))
495506
{
496507
buffers[block_id]=InvalidBuffer;
497508
continue;
498509
}
499510

511+
XLogRecGetBlockTag(record,block_id,&rnode,NULL,&blkno);
512+
ptrack_add_block_redo(rnode,blkno);
513+
500514
action=XLogReadBufferForRedo(record,block_id,&buffers[block_id]);
501515

502516
/* Apply redo to given block if needed */

‎src/backend/access/transam/xloginsert.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include"access/xlog.h"
2424
#include"access/xlog_internal.h"
2525
#include"access/xloginsert.h"
26+
#include"access/ptrack.h"
2627
#include"catalog/pg_control.h"
2728
#include"common/pg_lzcompress.h"
2829
#include"miscadmin.h"

‎src/backend/catalog/storage.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ RelationTruncate(Relation rel, BlockNumber nblocks)
243243
rel->rd_smgr->smgr_targblock=InvalidBlockNumber;
244244
rel->rd_smgr->smgr_fsm_nblocks=InvalidBlockNumber;
245245
rel->rd_smgr->smgr_vm_nblocks=InvalidBlockNumber;
246-
rel->rd_smgr->smgr_ptrack_nblocks=InvalidBlockNumber;
247246
rel->rd_smgr->smgr_main_nblocks=InvalidBlockNumber;
247+
rel->rd_smgr->smgr_ptrack_nblocks=InvalidBlockNumber;
248248

249249
/* Truncate the FSM first if it exists */
250250
fsm=smgrexists(rel->rd_smgr,FSM_FORKNUM);

‎src/include/storage/smgr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ typedef struct SMgrRelationData
5454
*/
5555
BlockNumbersmgr_targblock;/* current insertion target block */
5656
BlockNumbersmgr_fsm_nblocks;/* last known size of fsm fork */
57-
BlockNumbersmgr_vm_nblocks;/* last known size of vm fork */
57+
BlockNumbersmgr_vm_nblocks;/* last known size of vm fork */
5858
BlockNumbersmgr_ptrack_nblocks;/* last known size of ptrack fork */
5959

6060
/*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp