mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
Make enum for sync methods available to frontend code.
This commit renames RecoveryInitSyncMethod to DataDirSyncMethod and moves it to common/file_utils.h. This is preparatory work for a follow-up commit that will allow specifying the synchronization method in frontend utilities such as pg_upgrade and pg_basebackup. Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/ZN2ZB4afQ2JbR9TA%40paquier.xyz
This commit is contained in:
parent
059e4ee921
commit
3ed1956719
@ -162,7 +162,7 @@ int max_safe_fds = FD_MINFREE; /* default if not changed */
|
|||||||
bool data_sync_retry = false;
|
bool data_sync_retry = false;
|
||||||
|
|
||||||
/* How SyncDataDirectory() should do its job. */
|
/* How SyncDataDirectory() should do its job. */
|
||||||
int recovery_init_sync_method = RECOVERY_INIT_SYNC_METHOD_FSYNC;
|
int recovery_init_sync_method = DATA_DIR_SYNC_METHOD_FSYNC;
|
||||||
|
|
||||||
/* Which kinds of files should be opened with PG_O_DIRECT. */
|
/* Which kinds of files should be opened with PG_O_DIRECT. */
|
||||||
int io_direct_flags;
|
int io_direct_flags;
|
||||||
@ -3513,7 +3513,7 @@ SyncDataDirectory(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_SYNCFS
|
#ifdef HAVE_SYNCFS
|
||||||
if (recovery_init_sync_method == RECOVERY_INIT_SYNC_METHOD_SYNCFS)
|
if (recovery_init_sync_method == DATA_DIR_SYNC_METHOD_SYNCFS)
|
||||||
{
|
{
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
struct dirent *de;
|
struct dirent *de;
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#include "commands/trigger.h"
|
#include "commands/trigger.h"
|
||||||
#include "commands/user.h"
|
#include "commands/user.h"
|
||||||
#include "commands/vacuum.h"
|
#include "commands/vacuum.h"
|
||||||
|
#include "common/file_utils.h"
|
||||||
#include "common/scram-common.h"
|
#include "common/scram-common.h"
|
||||||
#include "jit/jit.h"
|
#include "jit/jit.h"
|
||||||
#include "libpq/auth.h"
|
#include "libpq/auth.h"
|
||||||
@ -430,9 +431,9 @@ StaticAssertDecl(lengthof(ssl_protocol_versions_info) == (PG_TLS1_3_VERSION + 2)
|
|||||||
"array length mismatch");
|
"array length mismatch");
|
||||||
|
|
||||||
static const struct config_enum_entry recovery_init_sync_method_options[] = {
|
static const struct config_enum_entry recovery_init_sync_method_options[] = {
|
||||||
{"fsync", RECOVERY_INIT_SYNC_METHOD_FSYNC, false},
|
{"fsync", DATA_DIR_SYNC_METHOD_FSYNC, false},
|
||||||
#ifdef HAVE_SYNCFS
|
#ifdef HAVE_SYNCFS
|
||||||
{"syncfs", RECOVERY_INIT_SYNC_METHOD_SYNCFS, false},
|
{"syncfs", DATA_DIR_SYNC_METHOD_SYNCFS, false},
|
||||||
#endif
|
#endif
|
||||||
{NULL, 0, false}
|
{NULL, 0, false}
|
||||||
};
|
};
|
||||||
@ -4953,7 +4954,7 @@ struct config_enum ConfigureNamesEnum[] =
|
|||||||
gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
|
gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
|
||||||
},
|
},
|
||||||
&recovery_init_sync_method,
|
&recovery_init_sync_method,
|
||||||
RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
|
DATA_DIR_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
|
||||||
NULL, NULL, NULL
|
NULL, NULL, NULL
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -24,6 +24,12 @@ typedef enum PGFileType
|
|||||||
PGFILETYPE_LNK
|
PGFILETYPE_LNK
|
||||||
} PGFileType;
|
} PGFileType;
|
||||||
|
|
||||||
|
typedef enum DataDirSyncMethod
|
||||||
|
{
|
||||||
|
DATA_DIR_SYNC_METHOD_FSYNC,
|
||||||
|
DATA_DIR_SYNC_METHOD_SYNCFS
|
||||||
|
} DataDirSyncMethod;
|
||||||
|
|
||||||
struct iovec; /* avoid including port/pg_iovec.h here */
|
struct iovec; /* avoid including port/pg_iovec.h here */
|
||||||
|
|
||||||
#ifdef FRONTEND
|
#ifdef FRONTEND
|
||||||
|
@ -46,12 +46,6 @@
|
|||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
typedef enum RecoveryInitSyncMethod
|
|
||||||
{
|
|
||||||
RECOVERY_INIT_SYNC_METHOD_FSYNC,
|
|
||||||
RECOVERY_INIT_SYNC_METHOD_SYNCFS
|
|
||||||
} RecoveryInitSyncMethod;
|
|
||||||
|
|
||||||
typedef int File;
|
typedef int File;
|
||||||
|
|
||||||
|
|
||||||
|
@ -545,6 +545,7 @@ DR_printtup
|
|||||||
DR_sqlfunction
|
DR_sqlfunction
|
||||||
DR_transientrel
|
DR_transientrel
|
||||||
DWORD
|
DWORD
|
||||||
|
DataDirSyncMethod
|
||||||
DataDumperPtr
|
DataDumperPtr
|
||||||
DataPageDeleteStack
|
DataPageDeleteStack
|
||||||
DatabaseInfo
|
DatabaseInfo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user