mirror of
https://github.com/postgres/postgres.git
synced 2026-10-23 13:29:09 +03:00
Use PG_DATA_CHECKSUM_OFF instead of hardcoded value
For a long time, the online checksums patchset kept the "off" state as literal zero without a label to be consistent with the previous coding which only had a label for the "on" state. Later, when an "off" label was made not all uses in the code got the memo. Fix by setting these to PG_DATA_CHECKSUM_OFF. While there, fix a duplicate word in a comment introduced by the same commit. Author: Aleksander Alekseev <aleksander@tigerdata.com> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://postgr.es/m/CAJ7c6TPRTnQFXXX1CRcYoTLXw2swtDH==uSz1MYoMKdLrKZHjA@mail.gmail.com
This commit is contained in:
@@ -4836,7 +4836,7 @@ SetDataChecksumsOn(void)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Await state transition to "on" in all backends. When done we know that
|
* Await state transition to "on" in all backends. When done we know that
|
||||||
* data data checksums are both written and verified in all backends.
|
* data checksums are both written and verified in all backends.
|
||||||
*/
|
*/
|
||||||
WaitForProcSignalBarrier(barrier);
|
WaitForProcSignalBarrier(barrier);
|
||||||
}
|
}
|
||||||
@@ -4864,7 +4864,7 @@ SetDataChecksumsOff(void)
|
|||||||
SpinLockAcquire(&XLogCtl->info_lck);
|
SpinLockAcquire(&XLogCtl->info_lck);
|
||||||
|
|
||||||
/* If data checksums are already disabled there is nothing to do */
|
/* If data checksums are already disabled there is nothing to do */
|
||||||
if (XLogCtl->data_checksum_version == 0)
|
if (XLogCtl->data_checksum_version == PG_DATA_CHECKSUM_OFF)
|
||||||
{
|
{
|
||||||
SpinLockRelease(&XLogCtl->info_lck);
|
SpinLockRelease(&XLogCtl->info_lck);
|
||||||
return;
|
return;
|
||||||
@@ -4931,7 +4931,7 @@ SetDataChecksumsOff(void)
|
|||||||
XLogChecksums(PG_DATA_CHECKSUM_OFF);
|
XLogChecksums(PG_DATA_CHECKSUM_OFF);
|
||||||
|
|
||||||
SpinLockAcquire(&XLogCtl->info_lck);
|
SpinLockAcquire(&XLogCtl->info_lck);
|
||||||
XLogCtl->data_checksum_version = 0;
|
XLogCtl->data_checksum_version = PG_DATA_CHECKSUM_OFF;
|
||||||
SpinLockRelease(&XLogCtl->info_lck);
|
SpinLockRelease(&XLogCtl->info_lck);
|
||||||
|
|
||||||
barrier = EmitProcSignalBarrier(PROCSIGNAL_BARRIER_CHECKSUM_OFF);
|
barrier = EmitProcSignalBarrier(PROCSIGNAL_BARRIER_CHECKSUM_OFF);
|
||||||
@@ -6605,7 +6605,7 @@ StartupXLOG(void)
|
|||||||
XLogChecksums(PG_DATA_CHECKSUM_OFF);
|
XLogChecksums(PG_DATA_CHECKSUM_OFF);
|
||||||
|
|
||||||
SpinLockAcquire(&XLogCtl->info_lck);
|
SpinLockAcquire(&XLogCtl->info_lck);
|
||||||
XLogCtl->data_checksum_version = 0;
|
XLogCtl->data_checksum_version = PG_DATA_CHECKSUM_OFF;
|
||||||
SetLocalDataChecksumState(XLogCtl->data_checksum_version);
|
SetLocalDataChecksumState(XLogCtl->data_checksum_version);
|
||||||
SpinLockRelease(&XLogCtl->info_lck);
|
SpinLockRelease(&XLogCtl->info_lck);
|
||||||
|
|
||||||
@@ -6625,7 +6625,7 @@ StartupXLOG(void)
|
|||||||
XLogChecksums(PG_DATA_CHECKSUM_OFF);
|
XLogChecksums(PG_DATA_CHECKSUM_OFF);
|
||||||
|
|
||||||
SpinLockAcquire(&XLogCtl->info_lck);
|
SpinLockAcquire(&XLogCtl->info_lck);
|
||||||
XLogCtl->data_checksum_version = 0;
|
XLogCtl->data_checksum_version = PG_DATA_CHECKSUM_OFF;
|
||||||
SetLocalDataChecksumState(XLogCtl->data_checksum_version);
|
SetLocalDataChecksumState(XLogCtl->data_checksum_version);
|
||||||
SpinLockRelease(&XLogCtl->info_lck);
|
SpinLockRelease(&XLogCtl->info_lck);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
|
|||||||
pg_getopt_ctx optctx;
|
pg_getopt_ctx optctx;
|
||||||
int flag;
|
int flag;
|
||||||
char *userDoption = NULL;
|
char *userDoption = NULL;
|
||||||
uint32 bootstrap_data_checksum_version = 0; /* No checksum */
|
uint32 bootstrap_data_checksum_version = PG_DATA_CHECKSUM_OFF;
|
||||||
yyscan_t scanner;
|
yyscan_t scanner;
|
||||||
|
|
||||||
Assert(!IsUnderPostmaster);
|
Assert(!IsUnderPostmaster);
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ main(int argc, char *argv[])
|
|||||||
mode == PG_MODE_CHECK)
|
mode == PG_MODE_CHECK)
|
||||||
pg_fatal("data checksums are not enabled in cluster");
|
pg_fatal("data checksums are not enabled in cluster");
|
||||||
|
|
||||||
if (ControlFile->data_checksum_version == 0 &&
|
if (ControlFile->data_checksum_version == PG_DATA_CHECKSUM_OFF &&
|
||||||
mode == PG_MODE_DISABLE)
|
mode == PG_MODE_DISABLE)
|
||||||
pg_fatal("data checksums are already disabled in cluster");
|
pg_fatal("data checksums are already disabled in cluster");
|
||||||
|
|
||||||
@@ -645,7 +645,7 @@ main(int argc, char *argv[])
|
|||||||
if (mode == PG_MODE_ENABLE || mode == PG_MODE_DISABLE)
|
if (mode == PG_MODE_ENABLE || mode == PG_MODE_DISABLE)
|
||||||
{
|
{
|
||||||
ControlFile->data_checksum_version =
|
ControlFile->data_checksum_version =
|
||||||
(mode == PG_MODE_ENABLE) ? PG_DATA_CHECKSUM_VERSION : 0;
|
(mode == PG_MODE_ENABLE) ? PG_DATA_CHECKSUM_VERSION : PG_DATA_CHECKSUM_OFF;
|
||||||
|
|
||||||
if (do_sync)
|
if (do_sync)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -615,7 +615,7 @@ check_control_files(int n_backups, char **backup_dirs)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
uint64 system_identifier = 0; /* placate compiler */
|
uint64 system_identifier = 0; /* placate compiler */
|
||||||
uint32 data_checksum_version = 0; /* placate compiler */
|
uint32 data_checksum_version = PG_DATA_CHECKSUM_OFF; /* placate compiler */
|
||||||
bool data_checksum_mismatch = false;
|
bool data_checksum_mismatch = false;
|
||||||
|
|
||||||
/* Try to read each control file in turn, last to first. */
|
/* Try to read each control file in turn, last to first. */
|
||||||
@@ -652,7 +652,7 @@ check_control_files(int n_backups, char **backup_dirs)
|
|||||||
*/
|
*/
|
||||||
if (i == n_backups - 1)
|
if (i == n_backups - 1)
|
||||||
data_checksum_version = control_file->data_checksum_version;
|
data_checksum_version = control_file->data_checksum_version;
|
||||||
else if (data_checksum_version != 0 &&
|
else if (data_checksum_version != PG_DATA_CHECKSUM_OFF &&
|
||||||
data_checksum_version != control_file->data_checksum_version)
|
data_checksum_version != control_file->data_checksum_version)
|
||||||
data_checksum_mismatch = true;
|
data_checksum_mismatch = true;
|
||||||
|
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ get_control_data(ClusterInfo *cluster)
|
|||||||
/* Only in <= 9.2 */
|
/* Only in <= 9.2 */
|
||||||
if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
|
if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
|
||||||
{
|
{
|
||||||
cluster->controldata.data_checksum_version = 0;
|
cluster->controldata.data_checksum_version = PG_DATA_CHECKSUM_OFF;
|
||||||
got_data_checksum_version = true;
|
got_data_checksum_version = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -749,11 +749,11 @@ check_control_data(ControlData *oldctrl,
|
|||||||
* We might eventually allow upgrades from checksum to no-checksum
|
* We might eventually allow upgrades from checksum to no-checksum
|
||||||
* clusters.
|
* clusters.
|
||||||
*/
|
*/
|
||||||
if (oldctrl->data_checksum_version == 0 &&
|
if (oldctrl->data_checksum_version == PG_DATA_CHECKSUM_OFF &&
|
||||||
newctrl->data_checksum_version != 0)
|
newctrl->data_checksum_version != PG_DATA_CHECKSUM_OFF)
|
||||||
pg_fatal("old cluster does not use data checksums but the new one does");
|
pg_fatal("old cluster does not use data checksums but the new one does");
|
||||||
else if (oldctrl->data_checksum_version != 0 &&
|
else if (oldctrl->data_checksum_version != PG_DATA_CHECKSUM_OFF &&
|
||||||
newctrl->data_checksum_version == 0)
|
newctrl->data_checksum_version == PG_DATA_CHECKSUM_OFF)
|
||||||
pg_fatal("old cluster uses data checksums but the new one does not");
|
pg_fatal("old cluster uses data checksums but the new one does not");
|
||||||
else if (oldctrl->data_checksum_version != newctrl->data_checksum_version)
|
else if (oldctrl->data_checksum_version != newctrl->data_checksum_version)
|
||||||
pg_fatal("old and new cluster pg_controldata checksum versions do not match");
|
pg_fatal("old and new cluster pg_controldata checksum versions do not match");
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
/* Set new checksum for visibility map page, if enabled */
|
/* Set new checksum for visibility map page, if enabled */
|
||||||
if (new_cluster.controldata.data_checksum_version != 0)
|
if (new_cluster.controldata.data_checksum_version != PG_DATA_CHECKSUM_OFF)
|
||||||
((PageHeader) new_vmbuf.data)->pd_checksum =
|
((PageHeader) new_vmbuf.data)->pd_checksum =
|
||||||
pg_checksum_page(new_vmbuf.data, new_blkno);
|
pg_checksum_page(new_vmbuf.data, new_blkno);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user