mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2024-12-05 11:00:22 +02:00
add parent_backup_link to pgBackup structure. No usage for now
This commit is contained in:
parent
6d709fb51c
commit
e71312cc03
@ -256,6 +256,8 @@ catalog_get_backup_list(time_t requested_backup_id)
|
|||||||
parray *backups = NULL;
|
parray *backups = NULL;
|
||||||
pgBackup *backup = NULL;
|
pgBackup *backup = NULL;
|
||||||
|
|
||||||
|
int i;
|
||||||
|
|
||||||
/* open backup instance backups directory */
|
/* open backup instance backups directory */
|
||||||
date_dir = opendir(backup_instance_path);
|
date_dir = opendir(backup_instance_path);
|
||||||
if (date_dir == NULL)
|
if (date_dir == NULL)
|
||||||
@ -283,6 +285,7 @@ catalog_get_backup_list(time_t requested_backup_id)
|
|||||||
/* read backup information from BACKUP_CONTROL_FILE */
|
/* read backup information from BACKUP_CONTROL_FILE */
|
||||||
snprintf(backup_conf_path, MAXPGPATH, "%s/%s", date_path, BACKUP_CONTROL_FILE);
|
snprintf(backup_conf_path, MAXPGPATH, "%s/%s", date_path, BACKUP_CONTROL_FILE);
|
||||||
backup = readBackupControlFile(backup_conf_path);
|
backup = readBackupControlFile(backup_conf_path);
|
||||||
|
backup->backup_id = backup->start_time;
|
||||||
|
|
||||||
/* ignore corrupted backups */
|
/* ignore corrupted backups */
|
||||||
if (backup)
|
if (backup)
|
||||||
@ -316,6 +319,30 @@ catalog_get_backup_list(time_t requested_backup_id)
|
|||||||
|
|
||||||
parray_qsort(backups, pgBackupCompareIdDesc);
|
parray_qsort(backups, pgBackupCompareIdDesc);
|
||||||
|
|
||||||
|
/* Link incremental backups with their ancestors.*/
|
||||||
|
for (i = 0; i < parray_num(backups); i++)
|
||||||
|
{
|
||||||
|
pgBackup *curr = parray_get(backups, i);
|
||||||
|
|
||||||
|
int j;
|
||||||
|
|
||||||
|
if (curr->backup_mode == BACKUP_MODE_FULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (j = i+1; j < parray_num(backups); j++)
|
||||||
|
{
|
||||||
|
pgBackup *ancestor = parray_get(backups, j);
|
||||||
|
|
||||||
|
if (ancestor->start_time == curr->parent_backup)
|
||||||
|
{
|
||||||
|
curr->parent_backup_link = ancestor;
|
||||||
|
/* elog(INFO, "curr %s, ancestor %s j=%d", base36enc_dup(curr->start_time),
|
||||||
|
base36enc_dup(ancestor->start_time), j); */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return backups;
|
return backups;
|
||||||
|
|
||||||
err_proc:
|
err_proc:
|
||||||
|
@ -184,6 +184,8 @@ typedef struct pgBackupConfig
|
|||||||
int compress_level;
|
int compress_level;
|
||||||
} pgBackupConfig;
|
} pgBackupConfig;
|
||||||
|
|
||||||
|
typedef struct pgBackup pgBackup;
|
||||||
|
|
||||||
/* Information about single backup stored in backup.conf */
|
/* Information about single backup stored in backup.conf */
|
||||||
typedef struct pgBackup
|
typedef struct pgBackup
|
||||||
{
|
{
|
||||||
@ -226,6 +228,7 @@ typedef struct pgBackup
|
|||||||
time_t parent_backup; /* Identifier of the previous backup.
|
time_t parent_backup; /* Identifier of the previous backup.
|
||||||
* Which is basic backup for this
|
* Which is basic backup for this
|
||||||
* incremental backup. */
|
* incremental backup. */
|
||||||
|
pgBackup *parent_backup_link;
|
||||||
char *primary_conninfo; /* Connection parameters of the backup
|
char *primary_conninfo; /* Connection parameters of the backup
|
||||||
* in the format suitable for recovery.conf */
|
* in the format suitable for recovery.conf */
|
||||||
} pgBackup;
|
} pgBackup;
|
||||||
|
@ -203,6 +203,7 @@ do_restore_or_validate(time_t target_backup_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* If we already found dest_backup, look for full backup. */
|
/* If we already found dest_backup, look for full backup. */
|
||||||
|
/* TODO Now, as we have all backups linked, we can probably get rid of that?"*/
|
||||||
if (dest_backup)
|
if (dest_backup)
|
||||||
{
|
{
|
||||||
if (current_backup->backup_mode == BACKUP_MODE_FULL)
|
if (current_backup->backup_mode == BACKUP_MODE_FULL)
|
||||||
|
@ -315,6 +315,7 @@ pgBackup_init(pgBackup *backup)
|
|||||||
backup->wal_block_size = XLOG_BLCKSZ;
|
backup->wal_block_size = XLOG_BLCKSZ;
|
||||||
backup->stream = false;
|
backup->stream = false;
|
||||||
backup->parent_backup = 0;
|
backup->parent_backup = 0;
|
||||||
|
backup->parent_backup_link = NULL;
|
||||||
backup->primary_conninfo = NULL;
|
backup->primary_conninfo = NULL;
|
||||||
backup->server_version[0] = '\0';
|
backup->server_version[0] = '\0';
|
||||||
}
|
}
|
||||||
|
@ -283,6 +283,7 @@ do_validate_instance(void)
|
|||||||
elog(ERROR, "Failed to get backup list.");
|
elog(ERROR, "Failed to get backup list.");
|
||||||
|
|
||||||
/* Valiate each backup along with its xlog files. */
|
/* Valiate each backup along with its xlog files. */
|
||||||
|
/* TODO Maybe use parent_backup_link instead of looking for backups in the list */
|
||||||
for (i = 0; i < parray_num(backups); i++)
|
for (i = 0; i < parray_num(backups); i++)
|
||||||
{
|
{
|
||||||
pgBackup *base_full_backup = NULL;
|
pgBackup *base_full_backup = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user