1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2026-05-22 10:15:16 +02:00

Modify InfoBackupData struct to use time_t for backup start/stop times.

The uint64_t types worked but were not consistent with how timestamps are handled in other parts of the code.
This commit is contained in:
Cynthia Shang
2019-11-12 17:05:09 -05:00
committed by David Steele
parent 6f65dde8d3
commit c5b76d213b
3 changed files with 15 additions and 10 deletions
+3 -2
View File
@@ -259,8 +259,9 @@ backupList(VariantList *backupSection, InfoBackup *info, const String *backupLab
// timestamp section
KeyValue *timeInfo = kvPutKv(varKv(backupInfo), BACKUP_KEY_TIMESTAMP_VAR);
kvAdd(timeInfo, KEY_START_VAR, VARUINT64(backupData.backupTimestampStart));
kvAdd(timeInfo, KEY_STOP_VAR, VARUINT64(backupData.backupTimestampStop));
// time_t is generally a signed int so cast it to uint64 since it can never be negative (before 1970) in our system
kvAdd(timeInfo, KEY_START_VAR, VARUINT64((uint64_t)backupData.backupTimestampStart));
kvAdd(timeInfo, KEY_STOP_VAR, VARUINT64((uint64_t)backupData.backupTimestampStop));
// If a backup label was specified and this is that label, then get the manifest
if (backupLabel != NULL && strEq(backupData.backupLabel, backupLabel))
+10 -6
View File
@@ -147,8 +147,10 @@ infoBackupLoadCallback(void *data, const String *section, const String *key, con
.backupInfoSizeDelta = varUInt64(kvGet(backupKv, INFO_BACKUP_KEY_BACKUP_INFO_SIZE_DELTA_VAR)),
.backupLabel = strDup(key),
.backupPgId = cvtZToUInt(strPtr(varStrForce(kvGet(backupKv, INFO_KEY_DB_ID_VAR)))),
.backupTimestampStart = varUInt64(kvGet(backupKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_START_VAR)),
.backupTimestampStop= varUInt64(kvGet(backupKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_STOP_VAR)),
// When reading timestamps, read as uint64 to ensure always positive value (guarantee no backups before 1970)
.backupTimestampStart = (time_t)varUInt64(kvGet(backupKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_START_VAR)),
.backupTimestampStop= (time_t)varUInt64(kvGet(backupKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_STOP_VAR)),
.backupType = varStrForce(kvGet(backupKv, INFO_BACKUP_KEY_BACKUP_TYPE_VAR)),
// Possible NULL values
@@ -245,8 +247,10 @@ infoBackupSaveCallback(void *data, const String *sectionNext, InfoSave *infoSave
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_INFO_REPO_SIZE_DELTA_VAR, VARUINT64(backupData.backupInfoRepoSizeDelta));
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_INFO_SIZE_VAR, VARUINT64(backupData.backupInfoSize));
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_INFO_SIZE_DELTA_VAR, VARUINT64(backupData.backupInfoSizeDelta));
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_START_VAR, VARUINT64(backupData.backupTimestampStart));
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_STOP_VAR, VARUINT64(backupData.backupTimestampStop));
// When storing time_t treat as signed int to avoid casting
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_START_VAR, VARINT64(backupData.backupTimestampStart));
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_TIMESTAMP_STOP_VAR, VARINT64(backupData.backupTimestampStop));
kvPut(backupDataKv, INFO_BACKUP_KEY_BACKUP_TYPE_VAR, VARSTR(backupData.backupType));
kvPut(backupDataKv, INFO_BACKUP_KEY_OPT_ARCHIVE_CHECK_VAR, VARBOOL(backupData.optionArchiveCheck));
@@ -402,8 +406,8 @@ infoBackupDataAdd(const InfoBackup *this, const Manifest *manifest)
.backupInfoSize = backupSize,
.backupInfoSizeDelta = backupSizeDelta,
.backupPgId = manData->pgId,
.backupTimestampStart = (uint64_t)manData->backupTimestampStart,
.backupTimestampStop= (uint64_t)manData->backupTimestampStop,
.backupTimestampStart = manData->backupTimestampStart,
.backupTimestampStop= manData->backupTimestampStop,
.backupType = backupTypeStr(manData->backupType),
.backupArchiveStart = strDup(manData->archiveStart),
+2 -2
View File
@@ -45,8 +45,8 @@ typedef struct InfoBackupData
unsigned int backupPgId;
const String *backupPrior;
StringList *backupReference;
uint64_t backupTimestampStart; // ??? Need to fix this so it is time_t
uint64_t backupTimestampStop; // ??? Need to fix this so it is time_t
time_t backupTimestampStart;
time_t backupTimestampStop;
const String *backupType;
bool optionArchiveCheck;
bool optionArchiveCopy;