This is an automated email from the ASF dual-hosted git repository.
chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/cbdb-postgres-merge by this
push:
new 6ae4ce27a51 Add target_gp_dbid to symlink
6ae4ce27a51 is described below
commit 6ae4ce27a51ae889f0f845215e922ee22e5e3fa2
Author: Jinbao Chen <[email protected]>
AuthorDate: Thu Feb 5 22:50:20 2026 +0800
Add target_gp_dbid to symlink
---
src/bin/pg_basebackup/bbstreamer.h | 3 ++-
src/bin/pg_basebackup/bbstreamer_tar.c | 8 ++++++--
src/bin/pg_basebackup/pg_basebackup.c | 4 ++--
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/bin/pg_basebackup/bbstreamer.h
b/src/bin/pg_basebackup/bbstreamer.h
index f999e635d98..6842dd0d9c7 100644
--- a/src/bin/pg_basebackup/bbstreamer.h
+++ b/src/bin/pg_basebackup/bbstreamer.h
@@ -100,6 +100,7 @@ struct bbstreamer
const bbstreamer_ops *bbs_ops;
bbstreamer *bbs_next;
StringInfoData bbs_buffer;
+ int target_gp_dbid;
};
/*
@@ -213,7 +214,7 @@ extern bbstreamer
*bbstreamer_lz4_decompressor_new(bbstreamer *next);
extern bbstreamer *bbstreamer_zstd_compressor_new(bbstreamer *next,
pg_compress_specification *compress);
extern bbstreamer *bbstreamer_zstd_decompressor_new(bbstreamer *next);
-extern bbstreamer *bbstreamer_tar_parser_new(bbstreamer *next);
+extern bbstreamer *bbstreamer_tar_parser_new(bbstreamer *next, int
target_gp_dbid);
extern bbstreamer *bbstreamer_tar_terminator_new(bbstreamer *next);
extern bbstreamer *bbstreamer_tar_archiver_new(bbstreamer *next);
diff --git a/src/bin/pg_basebackup/bbstreamer_tar.c
b/src/bin/pg_basebackup/bbstreamer_tar.c
index 03d7fd3375a..a8f5afea02f 100644
--- a/src/bin/pg_basebackup/bbstreamer_tar.c
+++ b/src/bin/pg_basebackup/bbstreamer_tar.c
@@ -34,6 +34,7 @@ typedef struct bbstreamer_tar_parser
bbstreamer_member member;
size_t file_bytes_sent;
size_t pad_bytes_expected;
+ int target_gp_dbid;
} bbstreamer_tar_parser;
typedef struct bbstreamer_tar_archiver
@@ -90,7 +91,7 @@ const bbstreamer_ops bbstreamer_tar_terminator_ops = {
* conventions described in bbstreamer.h.
*/
extern bbstreamer *
-bbstreamer_tar_parser_new(bbstreamer *next)
+bbstreamer_tar_parser_new(bbstreamer *next, int target_gp_dbid)
{
bbstreamer_tar_parser *streamer;
@@ -100,7 +101,7 @@ bbstreamer_tar_parser_new(bbstreamer *next)
streamer->base.bbs_next = next;
initStringInfo(&streamer->base.bbs_buffer);
streamer->next_context = BBSTREAMER_MEMBER_HEADER;
-
+ streamer->target_gp_dbid = target_gp_dbid;
return &streamer->base;
}
@@ -303,6 +304,9 @@ bbstreamer_tar_header(bbstreamer_tar_parser *mystreamer)
if (member->is_link)
strlcpy(member->linktarget, &buffer[157], 100);
+ if (strlen(member->linktarget) != 0 && mystreamer->target_gp_dbid)
+ sprintf(member->linktarget, "%s/%d", member->linktarget,
mystreamer->target_gp_dbid);
+
/* Compute number of padding bytes. */
mystreamer->pad_bytes_expected = tarPaddingBytesRequired(member->size);
diff --git a/src/bin/pg_basebackup/pg_basebackup.c
b/src/bin/pg_basebackup/pg_basebackup.c
index 47ee928a758..24cd2f05258 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -1196,7 +1196,7 @@ CreateBackupStreamer(char *archive_name, char
*spclocation,
else
{
snprintf(archive_filename, sizeof(archive_filename),
- "%s/%s", basedir, archive_name);
+ "%s/%s/%d", basedir, archive_name,
target_gp_dbid);
archive_file = NULL;
}
@@ -1266,7 +1266,7 @@ CreateBackupStreamer(char *archive_name, char
*spclocation,
* we're talking to such a server we'll need to add the terminator here.
*/
if (must_parse_archive)
- streamer = bbstreamer_tar_parser_new(streamer);
+ streamer = bbstreamer_tar_parser_new(streamer, target_gp_dbid);
else if (expect_unterminated_tarfile)
streamer = bbstreamer_tar_terminator_new(streamer);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]