Skip to content

Commit 6ae4ce2

Browse files
committed
Add target_gp_dbid to symlink
1 parent f22d1cf commit 6ae4ce2

3 files changed

Lines changed: 10 additions & 5 deletions

File tree

src/bin/pg_basebackup/bbstreamer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ struct bbstreamer
100100
const bbstreamer_ops *bbs_ops;
101101
bbstreamer *bbs_next;
102102
StringInfoData bbs_buffer;
103+
int target_gp_dbid;
103104
};
104105

105106
/*
@@ -213,7 +214,7 @@ extern bbstreamer *bbstreamer_lz4_decompressor_new(bbstreamer *next);
213214
extern bbstreamer *bbstreamer_zstd_compressor_new(bbstreamer *next,
214215
pg_compress_specification *compress);
215216
extern bbstreamer *bbstreamer_zstd_decompressor_new(bbstreamer *next);
216-
extern bbstreamer *bbstreamer_tar_parser_new(bbstreamer *next);
217+
extern bbstreamer *bbstreamer_tar_parser_new(bbstreamer *next, int target_gp_dbid);
217218
extern bbstreamer *bbstreamer_tar_terminator_new(bbstreamer *next);
218219
extern bbstreamer *bbstreamer_tar_archiver_new(bbstreamer *next);
219220

src/bin/pg_basebackup/bbstreamer_tar.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ typedef struct bbstreamer_tar_parser
3434
bbstreamer_member member;
3535
size_t file_bytes_sent;
3636
size_t pad_bytes_expected;
37+
int target_gp_dbid;
3738
} bbstreamer_tar_parser;
3839

3940
typedef struct bbstreamer_tar_archiver
@@ -90,7 +91,7 @@ const bbstreamer_ops bbstreamer_tar_terminator_ops = {
9091
* conventions described in bbstreamer.h.
9192
*/
9293
extern bbstreamer *
93-
bbstreamer_tar_parser_new(bbstreamer *next)
94+
bbstreamer_tar_parser_new(bbstreamer *next, int target_gp_dbid)
9495
{
9596
bbstreamer_tar_parser *streamer;
9697

@@ -100,7 +101,7 @@ bbstreamer_tar_parser_new(bbstreamer *next)
100101
streamer->base.bbs_next = next;
101102
initStringInfo(&streamer->base.bbs_buffer);
102103
streamer->next_context = BBSTREAMER_MEMBER_HEADER;
103-
104+
streamer->target_gp_dbid = target_gp_dbid;
104105
return &streamer->base;
105106
}
106107

@@ -303,6 +304,9 @@ bbstreamer_tar_header(bbstreamer_tar_parser *mystreamer)
303304
if (member->is_link)
304305
strlcpy(member->linktarget, &buffer[157], 100);
305306

307+
if (strlen(member->linktarget) != 0 && mystreamer->target_gp_dbid)
308+
sprintf(member->linktarget, "%s/%d", member->linktarget, mystreamer->target_gp_dbid);
309+
306310
/* Compute number of padding bytes. */
307311
mystreamer->pad_bytes_expected = tarPaddingBytesRequired(member->size);
308312

src/bin/pg_basebackup/pg_basebackup.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1196,7 +1196,7 @@ CreateBackupStreamer(char *archive_name, char *spclocation,
11961196
else
11971197
{
11981198
snprintf(archive_filename, sizeof(archive_filename),
1199-
"%s/%s", basedir, archive_name);
1199+
"%s/%s/%d", basedir, archive_name, target_gp_dbid);
12001200
archive_file = NULL;
12011201
}
12021202

@@ -1266,7 +1266,7 @@ CreateBackupStreamer(char *archive_name, char *spclocation,
12661266
* we're talking to such a server we'll need to add the terminator here.
12671267
*/
12681268
if (must_parse_archive)
1269-
streamer = bbstreamer_tar_parser_new(streamer);
1269+
streamer = bbstreamer_tar_parser_new(streamer, target_gp_dbid);
12701270
else if (expect_unterminated_tarfile)
12711271
streamer = bbstreamer_tar_terminator_new(streamer);
12721272

0 commit comments

Comments
 (0)