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

Commit76cf46c

Browse files
committed
[PGPRO-7068] live with postgresql master branch on 2022.08.16
Tags: ptrack
1 parent6951c58 commit76cf46c

File tree

5 files changed

+50
-33
lines changed

5 files changed

+50
-33
lines changed

‎datapagemap.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
#ifndefDATAPAGEMAP_H
1010
#defineDATAPAGEMAP_H
1111

12-
#include"storage/relfilenode.h"
1312
#include"storage/block.h"
1413

1514
structdatapagemap

‎engine.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -516,22 +516,22 @@ ptrack_mark_file(Oid dbOid, Oid tablespaceOid,
516516
/* Mark of non-temporary relation */
517517
rnode.backend=InvalidBackendId;
518518

519-
rnode.node.dbNode=dbOid;
520-
rnode.node.spcNode=tablespaceOid;
519+
nodeDb(nodeOf(rnode))=dbOid;
520+
nodeSpc(nodeOf(rnode))=tablespaceOid;
521521

522522
if (!parse_filename_for_nontemp_relation(filename,&oidchars,&forknum))
523523
return;
524524

525525
memcpy(oidbuf,filename,oidchars);
526526
oidbuf[oidchars]='\0';
527-
rnode.node.relNode=atooid(oidbuf);
527+
nodeRel(nodeOf(rnode))=atooid(oidbuf);
528528

529529
/* Compute number of blocks based on file size */
530530
if (stat(filepath,&stat_buf)==0)
531531
nblocks=stat_buf.st_size /BLCKSZ;
532532

533533
elog(DEBUG1,"ptrack_mark_file %s, nblocks %u rnode db %u spc %u rel %u, forknum %d",
534-
filepath,nblocks,rnode.node.dbNode,rnode.node.spcNode,rnode.node.relNode,forknum);
534+
filepath,nblocks,nodeDb(nodeOf(rnode)),nodeSpc(nodeOf(rnode)),nodeRel(nodeOf(rnode)),forknum);
535535

536536
for (blkno=0;blkno<nblocks;blkno++)
537537
ptrack_mark_block(rnode,forknum,blkno);
@@ -612,7 +612,7 @@ ptrack_mark_block(RelFileNodeBackend smgr_rnode,
612612
* relations */
613613
return;
614614

615-
bid.relnode=smgr_rnode.node;
615+
bid.relnode=nodeOf(smgr_rnode);
616616
bid.forknum=forknum;
617617
bid.blocknum=blocknum;
618618

‎patches/master-ptrack-core.diff

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c
2-
index5244823ff85..160889b4a04 100644
3-
--- a/src/backend/replication/basebackup.c
4-
+++ b/src/backend/replication/basebackup.c
1+
diff --git a/src/backend/backup/basebackup.c b/src/backend/backup/basebackup.c
2+
index715428029b3..81f3218540a 100644
3+
--- a/src/backend/backup/basebackup.c
4+
+++ b/src/backend/backup/basebackup.c
55
@@ -197,6 +197,13 @@ static const struct exclude_list_item excludeFiles[] =
66
{"postmaster.pid", false},
77
{"postmaster.opts", false},
@@ -52,7 +52,7 @@ index 658fd95ba95..eee38eba176 100644
5252
* Be paranoid here and fsync all files to ensure the copy is really done.
5353
* But if fsync is disabled, we're done.
5454
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
55-
index43edaf5d873..bbaf7500944 100644
55+
index3deac496eed..07c4ee2ba03 100644
5656
--- a/src/backend/storage/smgr/md.c
5757
+++ b/src/backend/storage/smgr/md.c
5858
@@ -87,6 +87,8 @@ typedef struct _MdfdVec
@@ -63,29 +63,29 @@ index 43edaf5d873..bbaf7500944 100644
6363
+mdwrite_hook_type mdwrite_hook = NULL;
6464

6565
/* Populate a file tag describing an md.c segment file. */
66-
#define INIT_MD_FILETAG(a,xx_rnode,xx_forknum,xx_segno) \
67-
@@ -467,6 +469,9 @@ mdextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
66+
#define INIT_MD_FILETAG(a,xx_rlocator,xx_forknum,xx_segno) \
67+
@@ -484,6 +486,9 @@ mdextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
6868
register_dirty_segment(reln, forknum, v);
6969

7070
Assert(_mdnblocks(reln, forknum, v) <= ((BlockNumber) RELSEG_SIZE));
7171
+
7272
+if (mdextend_hook)
73-
+mdextend_hook(reln->smgr_rnode, forknum, blocknum);
73+
+mdextend_hook(reln->smgr_rlocator, forknum, blocknum);
7474
}
7575

7676
/*
77-
@@ -756,6 +761,9 @@ mdwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
77+
@@ -773,6 +778,9 @@ mdwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
7878

7979
if (!skipFsync && !SmgrIsTemp(reln))
8080
register_dirty_segment(reln, forknum, v);
8181
+
8282
+if (mdwrite_hook)
83-
+mdwrite_hook(reln->smgr_rnode, forknum, blocknum);
83+
+mdwrite_hook(reln->smgr_rlocator, forknum, blocknum);
8484
}
8585

8686
/*
8787
diff --git a/src/backend/storage/sync/sync.c b/src/backend/storage/sync/sync.c
88-
indexe1fb6310038..76d75680b31 100644
88+
index9d6a9e91090..990d0722229 100644
8989
--- a/src/backend/storage/sync/sync.c
9090
+++ b/src/backend/storage/sync/sync.c
9191
@@ -81,6 +81,8 @@ static MemoryContext pendingOpsCxt; /* context for the above */
@@ -108,7 +108,7 @@ index e1fb6310038..76d75680b31 100644
108108
sync_in_progress = false;
109109
}
110110
diff --git a/src/bin/pg_checksums/pg_checksums.c b/src/bin/pg_checksums/pg_checksums.c
111-
index21dfe1b6ee5..266ac1ef40a 100644
111+
index324ccf77834..e82cae5f325 100644
112112
--- a/src/bin/pg_checksums/pg_checksums.c
113113
+++ b/src/bin/pg_checksums/pg_checksums.c
114114
@@ -118,6 +118,11 @@ static const struct exclude_list_item skip[] = {
@@ -186,7 +186,7 @@ index d4772a29650..3318f64359d 100644
186186
/*
187187
* Write an empty XLOG file, containing only the checkpoint record
188188
diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c
189-
index62529310415..b496f54fb06 100644
189+
index269ed6446e6..6318a8c1f55 100644
190190
--- a/src/bin/pg_rewind/filemap.c
191191
+++ b/src/bin/pg_rewind/filemap.c
192192
@@ -157,6 +157,10 @@ static const struct exclude_list_item excludeFiles[] =
@@ -228,25 +228,25 @@ index 50a26edeb06..af1602f5154 100644
228228
extern void copy_file(char *fromfile, char *tofile);
229229

230230
diff --git a/src/include/storage/md.h b/src/include/storage/md.h
231-
indexffffa40db71..3ff98e0bf01 100644
231+
index10aa1b0109b..1415675824e 100644
232232
--- a/src/include/storage/md.h
233233
+++ b/src/include/storage/md.h
234234
@@ -19,6 +19,13 @@
235235
#include "storage/smgr.h"
236236
#include "storage/sync.h"
237237

238-
+typedef void (*mdextend_hook_type) (RelFileNodeBackend smgr_rnode,
238+
+typedef void (*mdextend_hook_type) (RelFileLocatorBackend smgr_rlocator,
239239
+ForkNumber forknum, BlockNumber blocknum);
240240
+extern PGDLLIMPORT mdextend_hook_type mdextend_hook;
241-
+typedef void (*mdwrite_hook_type) (RelFileNodeBackend smgr_rnode,
241+
+typedef void (*mdwrite_hook_type) (RelFileLocatorBackend smgr_rlocator,
242242
+ForkNumber forknum, BlockNumber blocknum);
243243
+extern PGDLLIMPORT mdwrite_hook_type mdwrite_hook;
244244
+
245245
/* md storage manager functionality */
246246
extern void mdinit(void);
247247
extern void mdopen(SMgrRelation reln);
248248
diff --git a/src/include/storage/sync.h b/src/include/storage/sync.h
249-
index9737e1eb67c..914ad86328f 100644
249+
index049af878dec..7689d49a24e 100644
250250
--- a/src/include/storage/sync.h
251251
+++ b/src/include/storage/sync.h
252252
@@ -55,6 +55,9 @@ typedef struct FileTag

‎ptrack.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353
#include"utils/pg_lsn.h"
5454

5555
#include"datapagemap.h"
56-
#include"engine.h"
5756
#include"ptrack.h"
57+
#include"engine.h"
5858

5959
PG_MODULE_MAGIC;
6060

@@ -356,16 +356,16 @@ ptrack_gather_filelist(List **filelist, char *path, Oid spcOid, Oid dbOid)
356356

357357
memcpy(oidbuf,de->d_name,oidchars);
358358
oidbuf[oidchars]='\0';
359-
pfl->relnode.relNode=atooid(oidbuf);
360-
pfl->relnode.dbNode=dbOid;
361-
pfl->relnode.spcNode=spcOid==InvalidOid ?DEFAULTTABLESPACE_OID :spcOid;
362-
pfl->path=GetRelationPath(dbOid,pfl->relnode.spcNode,
363-
pfl->relnode.relNode,InvalidBackendId,pfl->forknum);
359+
nodeRel(pfl->relnode)=atooid(oidbuf);
360+
nodeDb(pfl->relnode)=dbOid;
361+
nodeSpc(pfl->relnode)=spcOid==InvalidOid ?DEFAULTTABLESPACE_OID :spcOid;
362+
pfl->path=GetRelationPath(dbOid,nodeSpc(pfl->relnode),
363+
nodeRel(pfl->relnode),InvalidBackendId,pfl->forknum);
364364

365365
*filelist=lappend(*filelist,pfl);
366366

367367
elog(DEBUG3,"ptrack: added file %s of rel %u to file list",
368-
pfl->path,pfl->relnode.relNode);
368+
pfl->path,nodeRel(pfl->relnode));
369369
}
370370
}
371371
elseif (S_ISDIR(fst.st_mode))
@@ -426,9 +426,9 @@ ptrack_filelist_getnext(PtScanCtx * ctx)
426426
ctx->relpath=pfl->path;
427427
}
428428

429-
ctx->bid.relnode.spcNode=pfl->relnode.spcNode;
430-
ctx->bid.relnode.dbNode=pfl->relnode.dbNode;
431-
ctx->bid.relnode.relNode=pfl->relnode.relNode;
429+
nodeSpc(ctx->bid.relnode)=nodeSpc(pfl->relnode);
430+
nodeDb(ctx->bid.relnode)=nodeDb(pfl->relnode);
431+
nodeRel(ctx->bid.relnode)=nodeRel(pfl->relnode);
432432
ctx->bid.forknum=pfl->forknum;
433433
ctx->bid.blocknum=0;
434434

‎ptrack.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
#include"access/xlogdefs.h"
1919
#include"storage/block.h"
2020
#include"storage/buf.h"
21+
#ifPG_VERSION_NUM >=160000
22+
#include"storage/relfilelocator.h"
23+
#else
2124
#include"storage/relfilenode.h"
25+
#endif
2226
#include"storage/smgr.h"
2327
#include"utils/relcache.h"
2428

@@ -29,6 +33,20 @@
2933
/* Last ptrack version that changed map file format */
3034
#definePTRACK_MAP_FILE_VERSION_NUM 220
3135

36+
#ifPG_VERSION_NUM >=160000
37+
#defineRelFileNodeRelFileLocator
38+
#defineRelFileNodeBackendRelFileLocatorBackend
39+
#definenodeDb(node)(node).dbOid
40+
#definenodeSpc(node)(node).spcOid
41+
#definenodeRel(node)(node).relNumber
42+
#definenodeOf(ndbck)(ndbck).locator
43+
#else
44+
#definenodeDb(node)(node).dbNode
45+
#definenodeSpc(node)(node).spcNode
46+
#definenodeRel(node)(node).relNode
47+
#definenodeOf(ndbck)(ndbck).node
48+
#endif
49+
3250
/*
3351
* Structure identifying block on the disk.
3452
*/

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp