Added --note option for set-backup command. Fixed --note option for backup command. Added char *note field to pgSetBackupParams structure

This commit is contained in:
Victor Spirin
2020-03-23 16:41:29 +03:00
parent 884fed1a64
commit 2cf0c991f3
4 changed files with 17 additions and 7 deletions
+2 -2
View File
@@ -750,7 +750,7 @@ pgdata_basic_setup(ConnectionOptions conn_opt, PGNodeInfo *nodeInfo)
*/
int
do_backup(time_t start_time, bool no_validate,
pgSetBackupParams *set_backup_params, bool no_sync, char *note)
pgSetBackupParams *set_backup_params, bool no_sync)
{
PGconn *backup_conn = NULL;
PGNodeInfo nodeInfo;
@@ -767,7 +767,7 @@ do_backup(time_t start_time, bool no_validate,
current.status = BACKUP_STATUS_RUNNING;
current.start_time = start_time;
current.note = note;
current.note = set_backup_params ? set_backup_params->note : NULL;
StrNCpy(current.program_version, PROGRAM_VERSION,
sizeof(current.program_version));
+6 -2
View File
@@ -1412,9 +1412,11 @@ pin_backup(pgBackup *target_backup, pgSetBackupParams *set_backup_params)
/* Pin comes from expire-time */
else if (set_backup_params->expire_time > 0)
target_backup->expire_time = set_backup_params->expire_time;
else
else if (!set_backup_params->note)
return false;
if (set_backup_params->note) target_backup->note = set_backup_params->note;
/* Update backup.control */
write_backup(target_backup);
@@ -1426,9 +1428,11 @@ pin_backup(pgBackup *target_backup, pgSetBackupParams *set_backup_params)
elog(INFO, "Backup %s is pinned until '%s'", base36enc(target_backup->start_time),
expire_timestamp);
}
else
else if (set_backup_params->ttl == 0)
elog(INFO, "Backup %s is unpinned", base36enc(target_backup->start_time));
if (set_backup_params->note)
elog(INFO, "Saved note for backup %s", base36enc(target_backup->start_time));
return true;
}
+3 -2
View File
@@ -726,11 +726,12 @@ main(int argc, char *argv[])
expire_time_string);
}
if (expire_time > 0 || ttl >= 0)
if (expire_time > 0 || ttl >= 0 || backup_note)
{
set_backup_params = pgut_new(pgSetBackupParams);
set_backup_params->ttl = ttl;
set_backup_params->expire_time = expire_time;
set_backup_params->note = backup_note;
}
}
@@ -770,7 +771,7 @@ main(int argc, char *argv[])
elog(ERROR, "required parameter not specified: BACKUP_MODE "
"(-b, --backup-mode)");
return do_backup(start_time, no_validate, set_backup_params, no_sync, backup_note);
return do_backup(start_time, no_validate, set_backup_params, no_sync);
}
case RESTORE_CMD:
return do_restore_or_validate(current.backup_id,
+6 -1
View File
@@ -438,6 +438,7 @@ typedef struct pgSetBackupParams
time_t expire_time; /* Point in time before which backup
* must be pinned.
*/
char *note;
} pgSetBackupParams;
typedef struct
@@ -644,7 +645,7 @@ extern const char *pgdata_exclude_dir[];
/* in backup.c */
extern int do_backup(time_t start_time, bool no_validate,
pgSetBackupParams *set_backup_params, bool no_sync, char *note);
pgSetBackupParams *set_backup_params, bool no_sync);
extern void do_checkdb(bool need_amcheck, ConnectionOptions conn_opt,
char *pgdata);
extern BackupMode parse_backup_mode(const char *value);
@@ -947,4 +948,8 @@ extern char *pg_ptrack_get_and_clear(Oid tablespace_oid,
extern XLogRecPtr get_last_ptrack_lsn(PGconn *backup_conn, PGNodeInfo *nodeInfo);
extern parray * pg_ptrack_get_pagemapset(PGconn *backup_conn, const char *ptrack_schema, XLogRecPtr lsn);
#ifdef WIN32
#define setbuffer(stream, buf, size) setvbuf(stream, buf, buf ? _IOFBF : _IONBF, size);
#endif
#endif /* PG_PROBACKUP_H */