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;
|
||||
|
||||
/* 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. */
|
||||
int io_direct_flags;
|
||||
@ -3513,7 +3513,7 @@ SyncDataDirectory(void)
|
||||
}
|
||||
|
||||
#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;
|
||||
struct dirent *de;
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "commands/trigger.h"
|
||||
#include "commands/user.h"
|
||||
#include "commands/vacuum.h"
|
||||
#include "common/file_utils.h"
|
||||
#include "common/scram-common.h"
|
||||
#include "jit/jit.h"
|
||||
#include "libpq/auth.h"
|
||||
@ -430,9 +431,9 @@ StaticAssertDecl(lengthof(ssl_protocol_versions_info) == (PG_TLS1_3_VERSION + 2)
|
||||
"array length mismatch");
|
||||
|
||||
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
|
||||
{"syncfs", RECOVERY_INIT_SYNC_METHOD_SYNCFS, false},
|
||||
{"syncfs", DATA_DIR_SYNC_METHOD_SYNCFS, false},
|
||||
#endif
|
||||
{NULL, 0, false}
|
||||
};
|
||||
@ -4953,7 +4954,7 @@ struct config_enum ConfigureNamesEnum[] =
|
||||
gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
|
||||
},
|
||||
&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
|
||||
},
|
||||
|
||||
|
@ -24,6 +24,12 @@ typedef enum PGFileType
|
||||
PGFILETYPE_LNK
|
||||
} PGFileType;
|
||||
|
||||
typedef enum DataDirSyncMethod
|
||||
{
|
||||
DATA_DIR_SYNC_METHOD_FSYNC,
|
||||
DATA_DIR_SYNC_METHOD_SYNCFS
|
||||
} DataDirSyncMethod;
|
||||
|
||||
struct iovec; /* avoid including port/pg_iovec.h here */
|
||||
|
||||
#ifdef FRONTEND
|
||||
|
@ -46,12 +46,6 @@
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
typedef enum RecoveryInitSyncMethod
|
||||
{
|
||||
RECOVERY_INIT_SYNC_METHOD_FSYNC,
|
||||
RECOVERY_INIT_SYNC_METHOD_SYNCFS
|
||||
} RecoveryInitSyncMethod;
|
||||
|
||||
typedef int File;
|
||||
|
||||
|
||||
|
@ -545,6 +545,7 @@ DR_printtup
|
||||
DR_sqlfunction
|
||||
DR_transientrel
|
||||
DWORD
|
||||
DataDirSyncMethod
|
||||
DataDumperPtr
|
||||
DataPageDeleteStack
|
||||
DatabaseInfo
|
||||
|
Loading…
x
Reference in New Issue
Block a user