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

Commit8427f74

Browse files
committed
Merge branch 'PGPROEE9_6_transfer_tables' into PGPROEE9_6
2 parents6d99895 +9b36b64 commit8427f74

File tree

4 files changed

+43
-24
lines changed

4 files changed

+43
-24
lines changed

‎src/bin/pg_dump/pg_backup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ extern RelFileMap* fillRelFileMapSeq(Archive *fout, int *nrels,
318318
constchar*dbname,constchar*tblname);
319319
externRelFileMap*fillRelFileMapToast(Archive*fout,RelFileMap*map,
320320
intnrels,intntoastrels);
321-
externvoidtransfer_relfile(RelFileMap*map,constchar*type_suffix,
321+
externvoidtransfer_relfile(RelFileMap*map,constchar*type_suffix,constchar*cfm_suffix,
322322
constchar*transfer_dir,boolis_restore,
323323
boolis_copy_mode,boolis_verbose);
324324
externvoidtransferCheckControlData(Archive*fout,constchar*transfer_dir,boolisRestore);

‎src/bin/pg_dump/pg_backup_db.c

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -626,11 +626,13 @@ doTransferRelRestore(ArchiveHandle *AH, TocEntry *te)
626626
{
627627
ahprintf(AH,"SELECT pg_transfer_cleanup_shmem(%u::oid);", (&map[i])->reloid);
628628

629-
transfer_relfile(&map[i],"",ropt->transfer_dir,
629+
transfer_relfile(&map[i],"","",ropt->transfer_dir,
630630
is_restore,copy_mode,is_verbose);
631-
transfer_relfile(&map[i],"_fsm",ropt->transfer_dir,
631+
transfer_relfile(&map[i],"",".cfm",ropt->transfer_dir,
632632
is_restore,copy_mode,is_verbose);
633-
transfer_relfile(&map[i],"_vm",ropt->transfer_dir,
633+
transfer_relfile(&map[i],"_fsm","",ropt->transfer_dir,
634+
is_restore,copy_mode,is_verbose);
635+
transfer_relfile(&map[i],"_vm","",ropt->transfer_dir,
634636
is_restore,copy_mode,is_verbose);
635637
if (ropt->generate_wal)
636638
ahprintf(AH,"SELECT pg_transfer_wal(%u::oid);", (&map[i])->reloid);
@@ -641,7 +643,9 @@ doTransferRelRestore(ArchiveHandle *AH, TocEntry *te)
641643
{
642644
ahprintf(AH,"SELECT pg_transfer_cleanup_shmem(%u::oid);", (&sequencemap[i])->reloid);
643645

644-
transfer_relfile(&sequencemap[i],"",ropt->transfer_dir,
646+
transfer_relfile(&sequencemap[i],"","",ropt->transfer_dir,
647+
is_restore,copy_mode,is_verbose);
648+
transfer_relfile(&sequencemap[i],"",".cfm",ropt->transfer_dir,
645649
is_restore,copy_mode,is_verbose);
646650
if (ropt->generate_wal)
647651
ahprintf(AH,"SELECT pg_transfer_wal(%u::oid);", (&sequencemap[i])->reloid);
@@ -652,11 +656,13 @@ doTransferRelRestore(ArchiveHandle *AH, TocEntry *te)
652656
{
653657
ahprintf(AH,"SELECT pg_transfer_cleanup_shmem(%u::oid);", (&toastmap[i])->reloid);
654658

655-
transfer_relfile(&toastmap[i],"",ropt->transfer_dir,
659+
transfer_relfile(&toastmap[i],"","",ropt->transfer_dir,
660+
is_restore,copy_mode,is_verbose);
661+
transfer_relfile(&toastmap[i],"",".cfm",ropt->transfer_dir,
656662
is_restore,copy_mode,is_verbose);
657-
transfer_relfile(&toastmap[i],"_fsm",ropt->transfer_dir,
663+
transfer_relfile(&toastmap[i],"_fsm","",ropt->transfer_dir,
658664
is_restore,copy_mode,is_verbose);
659-
transfer_relfile(&toastmap[i],"_vm",ropt->transfer_dir,
665+
transfer_relfile(&toastmap[i],"_vm","",ropt->transfer_dir,
660666
is_restore,copy_mode,is_verbose);
661667
if (ropt->generate_wal)
662668
ahprintf(AH,"SELECT pg_transfer_wal(%u::oid);", (&toastmap[i])->reloid);
@@ -1241,6 +1247,7 @@ win32_pghardlink(const char *src, const char *dst)
12411247
*/
12421248
void
12431249
transfer_relfile(RelFileMap*map,constchar*type_suffix,
1250+
constchar*cfm_suffix,
12441251
constchar*transfer_dir,boolis_restore,
12451252
boolis_copy_mode,boolis_verbose)
12461253
{
@@ -1262,29 +1269,33 @@ transfer_relfile(RelFileMap *map, const char *type_suffix,
12621269
else
12631270
snprintf(extent_suffix,sizeof(extent_suffix),".%d",segno);
12641271

1265-
snprintf(db_file,sizeof(db_file),"%s%s/%u/%u%s%s",
1272+
snprintf(db_file,sizeof(db_file),"%s%s/%u/%u%s%s%s",
12661273
map->datadir,
12671274
map->tablespace,
12681275
map->db_oid,
12691276
map->relfilenode,
12701277
type_suffix,
1271-
extent_suffix);
1272-
snprintf(transfer_file,sizeof(transfer_file),"%s%s%s%s",
1278+
extent_suffix,
1279+
cfm_suffix);
1280+
snprintf(transfer_file,sizeof(transfer_file),"%s%s%s%s%s",
12731281
transfer_dir,
12741282
map->relname,
12751283
type_suffix,
1276-
extent_suffix);
1284+
extent_suffix,
1285+
cfm_suffix);
12771286

12781287
/* Did file open fail? */
12791288
if (!is_restore)
12801289
{
12811290
if (stat(db_file,&statbuf)!=0)
12821291
{
12831292
/*
1284-
* vm orfsm or non-first segment file does not exist?
1293+
* vm,fsm, cfm or non-first segment file does not exist?
12851294
* That's OK, just return
12861295
*/
1287-
if (type_suffix[0]!='\0'||segno!=0)
1296+
if (type_suffix[0]!='\0'
1297+
||cfm_suffix[0]!='\0'
1298+
||segno!=0)
12881299
{
12891300
if (errno==ENOENT)
12901301
return;
@@ -1298,10 +1309,12 @@ transfer_relfile(RelFileMap *map, const char *type_suffix,
12981309
if (stat(transfer_file,&statbuf)!=0)
12991310
{
13001311
/*
1301-
* vm orfsm or non-first segment file does not exist?
1312+
* vm,fsm, cfm or non-first segment file does not exist?
13021313
* That's OK, just return
13031314
*/
1304-
if (type_suffix[0]!='\0'||segno!=0)
1315+
if (type_suffix[0]!='\0'
1316+
||cfm_suffix[0]!='\0'
1317+
||segno!=0)
13051318
{
13061319
if (errno==ENOENT)
13071320
return;

‎src/bin/pg_dump/pg_dump.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,17 +2052,21 @@ doTransferRelDump(Archive *fout, void *dcontext)
20522052
*/
20532053
for (i = 0; i < nrels; i++)
20542054
{
2055-
transfer_relfile(&map[i], "", fout->dopt->transfer_dir,
2055+
transfer_relfile(&map[i], "","",fout->dopt->transfer_dir,
20562056
is_restore, copy_mode, is_verbose);
2057-
transfer_relfile(&map[i], "_fsm", fout->dopt->transfer_dir,
2057+
transfer_relfile(&map[i], "", ".cfm", fout->dopt->transfer_dir,
20582058
is_restore, copy_mode, is_verbose);
2059-
transfer_relfile(&map[i], "_vm", fout->dopt->transfer_dir,
2059+
transfer_relfile(&map[i], "_fsm", "", fout->dopt->transfer_dir,
2060+
is_restore, copy_mode, is_verbose);
2061+
transfer_relfile(&map[i], "_vm", "", fout->dopt->transfer_dir,
20602062
is_restore, copy_mode, is_verbose);
20612063
}
20622064

20632065
for (i = 0; i < nseqrels; i++)
20642066
{
2065-
transfer_relfile(&sequencemap[i], "", fout->dopt->transfer_dir,
2067+
transfer_relfile(&sequencemap[i], "", "", fout->dopt->transfer_dir,
2068+
is_restore, copy_mode, is_verbose);
2069+
transfer_relfile(&sequencemap[i], "", ".cfm", fout->dopt->transfer_dir,
20662070
is_restore, copy_mode, is_verbose);
20672071
}
20682072

@@ -2072,11 +2076,13 @@ doTransferRelDump(Archive *fout, void *dcontext)
20722076
*/
20732077
for (i = 0; i < ntoastrels*2; i++)
20742078
{
2075-
transfer_relfile(&toastmap[i], "", fout->dopt->transfer_dir,
2079+
transfer_relfile(&toastmap[i], "", "", fout->dopt->transfer_dir,
2080+
is_restore, copy_mode, is_verbose);
2081+
transfer_relfile(&toastmap[i], "", ".cfm", fout->dopt->transfer_dir,
20762082
is_restore, copy_mode, is_verbose);
2077-
transfer_relfile(&toastmap[i], "_fsm", fout->dopt->transfer_dir,
2083+
transfer_relfile(&toastmap[i], "_fsm","",fout->dopt->transfer_dir,
20782084
is_restore, copy_mode, is_verbose);
2079-
transfer_relfile(&toastmap[i], "_vm", fout->dopt->transfer_dir,
2085+
transfer_relfile(&toastmap[i], "_vm","",fout->dopt->transfer_dir,
20802086
is_restore, copy_mode, is_verbose);
20812087
}
20822088

‎src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/*yyyymmddN */
56-
#defineCATALOG_VERSION_NO201608131
56+
#defineCATALOG_VERSION_NO201608191
5757

5858
#endif

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp