From c77b50b7b16df20ea0f352b7dc615af099cdcaea Mon Sep 17 00:00:00 2001 From: Sergey Fukanchik Date: Sun, 18 Dec 2022 14:49:35 +0300 Subject: [PATCH] PBCKP-80 add catalog_new for tests --- src/catalog.c | 15 +++++++++++++++ src/pg_probackup.c | 8 +------- src/pg_probackup.h | 1 + 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/catalog.c b/src/catalog.c index 8ffd6f81..8701ce21 100644 --- a/src/catalog.c +++ b/src/catalog.c @@ -818,6 +818,21 @@ pgBackupGetBackupMode(pgBackup *backup, bool show_color) return backupModes[backup->backup_mode]; } +/* Build `CatalogState' from `backup_path' */ +CatalogState * +catalog_new(const char *backup_path) +{ + CatalogState *catalogState = pgut_new0(CatalogState); + strncpy(catalogState->catalog_path, backup_path, MAXPGPATH); + join_path_components(catalogState->backup_subdir_path, + catalogState->catalog_path, BACKUPS_DIR); + join_path_components(catalogState->wal_subdir_path, + catalogState->catalog_path, WAL_SUBDIR); + catalogState->backup_location = pioDriveForLocation(FIO_BACKUP_HOST); + + return catalogState; +} + /* * Create list of instances in given backup catalog. * diff --git a/src/pg_probackup.c b/src/pg_probackup.c index 4c44e4ba..5c55bd9d 100644 --- a/src/pg_probackup.c +++ b/src/pg_probackup.c @@ -474,13 +474,7 @@ pbk_main(int argc, char *argv[]) if (!is_absolute_path(backup_path)) elog(ERROR, "-B, --backup-path must be an absolute path"); - catalogState = pgut_new0(CatalogState); - strncpy(catalogState->catalog_path, backup_path, MAXPGPATH); - join_path_components(catalogState->backup_subdir_path, - catalogState->catalog_path, BACKUPS_DIR); - join_path_components(catalogState->wal_subdir_path, - catalogState->catalog_path, WAL_SUBDIR); - catalogState->backup_location = pioDriveForLocation(FIO_BACKUP_HOST); + catalogState = catalog_new(backup_path); } /* backup_path is required for all pg_probackup commands except help, version, checkdb and catchup */ diff --git a/src/pg_probackup.h b/src/pg_probackup.h index 56eb913c..a0b34e87 100644 --- a/src/pg_probackup.h +++ b/src/pg_probackup.h @@ -888,6 +888,7 @@ extern parray* get_history_streaming(ConnectionOptions *conn_opt, TimeLineID tli #define PAGE_LSN_FROM_FUTURE (-6) /* in catalog.c */ +extern CatalogState * catalog_new(const char *backup_path); extern pgBackup *read_backup(pioDrive_i drive, const char *root_dir); extern pgBackup *readBackupControlFile(pioDrive_i drive, const char *path); extern void write_backup(pgBackup *backup, bool strict);