mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
Use XLOG_CONTROL_FILE macro consistently for control file name.
The XLOG_CONTROL_FILE macro (defined in access/xlog_internal.h) represents the control file name. While some parts of the codebase already use this macro, others previously hardcoded the file name as a string. This commit replaces those hardcoded strings with the macro, ensuring consistent usage throughout the code. This makes future maintenance easier and improves searchability, for example when grepping for control file usage. Author: Anton A. Melnikov <a.melnikov@postgrespro.ru> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Reviewed-by: Masao Fujii <masao.fujii@gmail.com> Discussion: https://postgr.es/m/0841ec77-47e5-452a-adb4-c6fa55d605fc@postgrespro.ru
This commit is contained in:
parent
a233a603ba
commit
173c97812f
@ -1349,7 +1349,7 @@ sendDir(bbsink *sink, const char *path, int basepathlen, bool sizeonly,
|
|||||||
snprintf(pathbuf, sizeof(pathbuf), "%s/%s", path, de->d_name);
|
snprintf(pathbuf, sizeof(pathbuf), "%s/%s", path, de->d_name);
|
||||||
|
|
||||||
/* Skip pg_control here to back up it last */
|
/* Skip pg_control here to back up it last */
|
||||||
if (strcmp(pathbuf, "./global/pg_control") == 0)
|
if (strcmp(pathbuf, "./" XLOG_CONTROL_FILE) == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (lstat(pathbuf, &statbuf) != 0)
|
if (lstat(pathbuf, &statbuf) != 0)
|
||||||
|
@ -90,6 +90,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "access/xlog.h"
|
#include "access/xlog.h"
|
||||||
|
#include "access/xlog_internal.h"
|
||||||
#include "access/xlogrecovery.h"
|
#include "access/xlogrecovery.h"
|
||||||
#include "common/file_perm.h"
|
#include "common/file_perm.h"
|
||||||
#include "common/pg_prng.h"
|
#include "common/pg_prng.h"
|
||||||
@ -1516,7 +1517,7 @@ checkControlFile(void)
|
|||||||
char path[MAXPGPATH];
|
char path[MAXPGPATH];
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "%s/global/pg_control", DataDir);
|
snprintf(path, sizeof(path), "%s/%s", DataDir, XLOG_CONTROL_FILE);
|
||||||
|
|
||||||
fp = AllocateFile(path, PG_BINARY_R);
|
fp = AllocateFile(path, PG_BINARY_R);
|
||||||
if (fp == NULL)
|
if (fp == NULL)
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "access/xlog_internal.h"
|
||||||
#include "backup_label.h"
|
#include "backup_label.h"
|
||||||
#include "common/checksum_helper.h"
|
#include "common/checksum_helper.h"
|
||||||
#include "common/controldata_utils.h"
|
#include "common/controldata_utils.h"
|
||||||
@ -300,7 +301,7 @@ main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
char *controlpath;
|
char *controlpath;
|
||||||
|
|
||||||
controlpath = psprintf("%s/%s", prior_backup_dirs[i], "global/pg_control");
|
controlpath = psprintf("%s/%s", prior_backup_dirs[i], XLOG_CONTROL_FILE);
|
||||||
|
|
||||||
pg_fatal("%s: manifest system identifier is %" PRIu64 ", but control file has %" PRIu64,
|
pg_fatal("%s: manifest system identifier is %" PRIu64 ", but control file has %" PRIu64,
|
||||||
controlpath,
|
controlpath,
|
||||||
@ -614,7 +615,7 @@ check_control_files(int n_backups, char **backup_dirs)
|
|||||||
bool crc_ok;
|
bool crc_ok;
|
||||||
char *controlpath;
|
char *controlpath;
|
||||||
|
|
||||||
controlpath = psprintf("%s/%s", backup_dirs[i], "global/pg_control");
|
controlpath = psprintf("%s/%s", backup_dirs[i], XLOG_CONTROL_FILE);
|
||||||
pg_log_debug("reading \"%s\"", controlpath);
|
pg_log_debug("reading \"%s\"", controlpath);
|
||||||
control_file = get_controlfile_by_exact_path(controlpath, &crc_ok);
|
control_file = get_controlfile_by_exact_path(controlpath, &crc_ok);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* pg_controldata
|
* pg_controldata
|
||||||
*
|
*
|
||||||
* reads the data from $PGDATA/global/pg_control
|
* reads the data from the control file located at $PGDATA/XLOG_CONTROL_FILE.
|
||||||
*
|
*
|
||||||
* copyright (c) Oliver Elphick <olly@lfix.co.uk>, 2001;
|
* copyright (c) Oliver Elphick <olly@lfix.co.uk>, 2001;
|
||||||
* license: BSD
|
* license: BSD
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "access/xlog_internal.h"
|
||||||
#include "catalog/pg_tablespace_d.h"
|
#include "catalog/pg_tablespace_d.h"
|
||||||
#include "common/file_utils.h"
|
#include "common/file_utils.h"
|
||||||
#include "common/hashfn_unstable.h"
|
#include "common/hashfn_unstable.h"
|
||||||
@ -704,7 +705,7 @@ decide_file_action(file_entry_t *entry)
|
|||||||
* Don't touch the control file. It is handled specially, after copying
|
* Don't touch the control file. It is handled specially, after copying
|
||||||
* all the other files.
|
* all the other files.
|
||||||
*/
|
*/
|
||||||
if (strcmp(path, "global/pg_control") == 0)
|
if (strcmp(path, XLOG_CONTROL_FILE) == 0)
|
||||||
return FILE_ACTION_NONE;
|
return FILE_ACTION_NONE;
|
||||||
|
|
||||||
/* Skip macOS system files */
|
/* Skip macOS system files */
|
||||||
|
@ -328,7 +328,7 @@ main(int argc, char **argv)
|
|||||||
* need to make sure by themselves that the target cluster is in a clean
|
* need to make sure by themselves that the target cluster is in a clean
|
||||||
* state.
|
* state.
|
||||||
*/
|
*/
|
||||||
buffer = slurpFile(datadir_target, "global/pg_control", &size);
|
buffer = slurpFile(datadir_target, XLOG_CONTROL_FILE, &size);
|
||||||
digestControlFile(&ControlFile_target, buffer, size);
|
digestControlFile(&ControlFile_target, buffer, size);
|
||||||
pg_free(buffer);
|
pg_free(buffer);
|
||||||
|
|
||||||
@ -338,12 +338,12 @@ main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
ensureCleanShutdown(argv[0]);
|
ensureCleanShutdown(argv[0]);
|
||||||
|
|
||||||
buffer = slurpFile(datadir_target, "global/pg_control", &size);
|
buffer = slurpFile(datadir_target, XLOG_CONTROL_FILE, &size);
|
||||||
digestControlFile(&ControlFile_target, buffer, size);
|
digestControlFile(&ControlFile_target, buffer, size);
|
||||||
pg_free(buffer);
|
pg_free(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = source->fetch_file(source, "global/pg_control", &size);
|
buffer = source->fetch_file(source, XLOG_CONTROL_FILE, &size);
|
||||||
digestControlFile(&ControlFile_source, buffer, size);
|
digestControlFile(&ControlFile_source, buffer, size);
|
||||||
pg_free(buffer);
|
pg_free(buffer);
|
||||||
|
|
||||||
@ -636,7 +636,7 @@ perform_rewind(filemap_t *filemap, rewind_source *source,
|
|||||||
* Fetch the control file from the source last. This ensures that the
|
* Fetch the control file from the source last. This ensures that the
|
||||||
* minRecoveryPoint is up-to-date.
|
* minRecoveryPoint is up-to-date.
|
||||||
*/
|
*/
|
||||||
buffer = source->fetch_file(source, "global/pg_control", &size);
|
buffer = source->fetch_file(source, XLOG_CONTROL_FILE, &size);
|
||||||
digestControlFile(&ControlFile_source_after, buffer, size);
|
digestControlFile(&ControlFile_source_after, buffer, size);
|
||||||
pg_free(buffer);
|
pg_free(buffer);
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <limits.h> /* for CHAR_MIN */
|
#include <limits.h> /* for CHAR_MIN */
|
||||||
|
|
||||||
|
#include "access/xlog_internal.h"
|
||||||
#include "common/string.h"
|
#include "common/string.h"
|
||||||
#include "pg_upgrade.h"
|
#include "pg_upgrade.h"
|
||||||
|
|
||||||
@ -757,10 +758,10 @@ disable_old_cluster(transferMode transfer_mode)
|
|||||||
new_path[MAXPGPATH];
|
new_path[MAXPGPATH];
|
||||||
|
|
||||||
/* rename pg_control so old server cannot be accidentally started */
|
/* rename pg_control so old server cannot be accidentally started */
|
||||||
prep_status("Adding \".old\" suffix to old global/pg_control");
|
prep_status("Adding \".old\" suffix to old " XLOG_CONTROL_FILE);
|
||||||
|
|
||||||
snprintf(old_path, sizeof(old_path), "%s/global/pg_control", old_cluster.pgdata);
|
snprintf(old_path, sizeof(old_path), "%s/%s", old_cluster.pgdata, XLOG_CONTROL_FILE);
|
||||||
snprintf(new_path, sizeof(new_path), "%s/global/pg_control.old", old_cluster.pgdata);
|
snprintf(new_path, sizeof(new_path), "%s/%s.old", old_cluster.pgdata, XLOG_CONTROL_FILE);
|
||||||
if (pg_mv_file(old_path, new_path) != 0)
|
if (pg_mv_file(old_path, new_path) != 0)
|
||||||
pg_fatal("could not rename file \"%s\" to \"%s\": %m",
|
pg_fatal("could not rename file \"%s\" to \"%s\": %m",
|
||||||
old_path, new_path);
|
old_path, new_path);
|
||||||
@ -769,10 +770,10 @@ disable_old_cluster(transferMode transfer_mode)
|
|||||||
if (transfer_mode == TRANSFER_MODE_LINK)
|
if (transfer_mode == TRANSFER_MODE_LINK)
|
||||||
pg_log(PG_REPORT, "\n"
|
pg_log(PG_REPORT, "\n"
|
||||||
"If you want to start the old cluster, you will need to remove\n"
|
"If you want to start the old cluster, you will need to remove\n"
|
||||||
"the \".old\" suffix from %s/global/pg_control.old.\n"
|
"the \".old\" suffix from %s/%s.old.\n"
|
||||||
"Because \"link\" mode was used, the old cluster cannot be safely\n"
|
"Because \"link\" mode was used, the old cluster cannot be safely\n"
|
||||||
"started once the new cluster has been started.",
|
"started once the new cluster has been started.",
|
||||||
old_cluster.pgdata);
|
old_cluster.pgdata, XLOG_CONTROL_FILE);
|
||||||
else if (transfer_mode == TRANSFER_MODE_SWAP)
|
else if (transfer_mode == TRANSFER_MODE_SWAP)
|
||||||
pg_log(PG_REPORT, "\n"
|
pg_log(PG_REPORT, "\n"
|
||||||
"Because \"swap\" mode was used, the old cluster can no longer be\n"
|
"Because \"swap\" mode was used, the old cluster can no longer be\n"
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
|
|
||||||
|
#include "access/xlog_internal.h"
|
||||||
#include "catalog/pg_control.h"
|
#include "catalog/pg_control.h"
|
||||||
#include "pg_verifybackup.h"
|
#include "pg_verifybackup.h"
|
||||||
|
|
||||||
@ -225,7 +226,7 @@ member_verify_header(astreamer *streamer, astreamer_member *member)
|
|||||||
(!mystreamer->context->skip_checksums && should_verify_checksum(m));
|
(!mystreamer->context->skip_checksums && should_verify_checksum(m));
|
||||||
mystreamer->verify_control_data =
|
mystreamer->verify_control_data =
|
||||||
mystreamer->context->manifest->version != 1 &&
|
mystreamer->context->manifest->version != 1 &&
|
||||||
!m->bad && strcmp(m->pathname, "global/pg_control") == 0;
|
!m->bad && strcmp(m->pathname, XLOG_CONTROL_FILE) == 0;
|
||||||
|
|
||||||
/* If we're going to verify the checksum, initial a checksum context. */
|
/* If we're going to verify the checksum, initial a checksum context. */
|
||||||
if (mystreamer->verify_checksum &&
|
if (mystreamer->verify_checksum &&
|
||||||
@ -370,7 +371,7 @@ member_verify_control_data(astreamer *streamer)
|
|||||||
pg_crc32c crc;
|
pg_crc32c crc;
|
||||||
|
|
||||||
/* Should be here only for control file */
|
/* Should be here only for control file */
|
||||||
Assert(strcmp(mystreamer->mfile->pathname, "global/pg_control") == 0);
|
Assert(strcmp(mystreamer->mfile->pathname, XLOG_CONTROL_FILE) == 0);
|
||||||
Assert(mystreamer->verify_control_data);
|
Assert(mystreamer->verify_control_data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "access/xlog_internal.h"
|
||||||
#include "common/logging.h"
|
#include "common/logging.h"
|
||||||
#include "common/parse_manifest.h"
|
#include "common/parse_manifest.h"
|
||||||
#include "fe_utils/simple_list.h"
|
#include "fe_utils/simple_list.h"
|
||||||
@ -730,7 +731,7 @@ verify_plain_backup_file(verifier_context *context, char *relpath,
|
|||||||
* version 1.
|
* version 1.
|
||||||
*/
|
*/
|
||||||
if (context->manifest->version != 1 &&
|
if (context->manifest->version != 1 &&
|
||||||
strcmp(relpath, "global/pg_control") == 0)
|
strcmp(relpath, XLOG_CONTROL_FILE) == 0)
|
||||||
verify_control_file(fullpath, context->manifest->system_identifier);
|
verify_control_file(fullpath, context->manifest->system_identifier);
|
||||||
|
|
||||||
/* Update statistics for progress report, if necessary */
|
/* Update statistics for progress report, if necessary */
|
||||||
|
@ -53,7 +53,7 @@ get_controlfile(const char *DataDir, bool *crc_ok_p)
|
|||||||
{
|
{
|
||||||
char ControlFilePath[MAXPGPATH];
|
char ControlFilePath[MAXPGPATH];
|
||||||
|
|
||||||
snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);
|
snprintf(ControlFilePath, MAXPGPATH, "%s/%s", DataDir, XLOG_CONTROL_FILE);
|
||||||
|
|
||||||
return get_controlfile_by_exact_path(ControlFilePath, crc_ok_p);
|
return get_controlfile_by_exact_path(ControlFilePath, crc_ok_p);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user