Clean up some inconsistencies with GUC declarations

This is similar to 7d25958, and this commit takes care of all the
remaining inconsistencies between the initial value used in the C
variable associated to a GUC and its default value stored in the GUC
tables (as of pg_settings.boot_val).

Some of the initial values of the GUCs updated rely on a compile-time
default.  These are refactored so as the GUC table and its C declaration
use the same values.  This makes everything consistent with other
places, backend_flush_after, bgwriter_flush_after, port,
checkpoint_flush_after doing so already, for example.

Extracted from a larger patch by Peter Smith.  The spots updated in the
modules are from me.

Author: Peter Smith, Michael Paquier
Reviewed-by: Nathan Bossart, Tom Lane, Justin Pryzby
Discussion: https://postgr.es/m/CAHut+PtHE0XSfjjRQ6D4v7+dqzCw=d+1a64ujra4EX8aoc_Z+w@mail.gmail.com
This commit is contained in:
Michael Paquier 2022-10-31 12:44:48 +09:00
parent a9f8ca6005
commit d9d873bac6
19 changed files with 70 additions and 58 deletions

View File

@ -21,7 +21,7 @@
PG_MODULE_MAGIC; PG_MODULE_MAGIC;
/* GUC Variables */ /* GUC Variables */
static int auth_delay_milliseconds; static int auth_delay_milliseconds = 0;
/* Original Hook */ /* Original Hook */
static ClientAuthentication_hook_type original_client_auth_hook = NULL; static ClientAuthentication_hook_type original_client_auth_hook = NULL;

View File

@ -103,7 +103,7 @@ static AutoPrewarmSharedState *apw_state = NULL;
/* GUC variables. */ /* GUC variables. */
static bool autoprewarm = true; /* start worker? */ static bool autoprewarm = true; /* start worker? */
static int autoprewarm_interval; /* dump interval */ static int autoprewarm_interval = 300; /* dump interval */
/* /*
* Module load callback. * Module load callback.

View File

@ -283,11 +283,12 @@ static const struct config_enum_entry track_options[] =
{NULL, 0, false} {NULL, 0, false}
}; };
static int pgss_max; /* max # statements to track */ static int pgss_max = 5000; /* max # statements to track */
static int pgss_track; /* tracking level */ static int pgss_track = PGSS_TRACK_TOP; /* tracking level */
static bool pgss_track_utility; /* whether to track utility commands */ static bool pgss_track_utility = true; /* whether to track utility commands */
static bool pgss_track_planning; /* whether to track planning duration */ static bool pgss_track_planning = false; /* whether to track planning
static bool pgss_save; /* whether to save stats across shutdown */ * duration */
static bool pgss_save = true; /* whether to save stats across shutdown */
#define pgss_enabled(level) \ #define pgss_enabled(level) \

View File

@ -68,7 +68,7 @@ _PG_init(void)
"Sets the threshold used by the % operator.", "Sets the threshold used by the % operator.",
"Valid range is 0.0 .. 1.0.", "Valid range is 0.0 .. 1.0.",
&similarity_threshold, &similarity_threshold,
0.3, 0.3f,
0.0, 0.0,
1.0, 1.0,
PGC_USERSET, PGC_USERSET,
@ -80,7 +80,7 @@ _PG_init(void)
"Sets the threshold used by the <% operator.", "Sets the threshold used by the <% operator.",
"Valid range is 0.0 .. 1.0.", "Valid range is 0.0 .. 1.0.",
&word_similarity_threshold, &word_similarity_threshold,
0.6, 0.6f,
0.0, 0.0,
1.0, 1.0,
PGC_USERSET, PGC_USERSET,
@ -92,7 +92,7 @@ _PG_init(void)
"Sets the threshold used by the <<% operator.", "Sets the threshold used by the <<% operator.",
"Valid range is 0.0 .. 1.0.", "Valid range is 0.0 .. 1.0.",
&strict_word_similarity_threshold, &strict_word_similarity_threshold,
0.5, 0.5f,
0.0, 0.0,
1.0, 1.0,
PGC_USERSET, PGC_USERSET,

View File

@ -57,7 +57,7 @@ static sepgsql_context_info_t sepgsql_context_info;
/* /*
* GUC: sepgsql.permissive = (on|off) * GUC: sepgsql.permissive = (on|off)
*/ */
static bool sepgsql_permissive; static bool sepgsql_permissive = false;
bool bool
sepgsql_get_permissive(void) sepgsql_get_permissive(void)
@ -68,7 +68,7 @@ sepgsql_get_permissive(void)
/* /*
* GUC: sepgsql.debug_audit = (on|off) * GUC: sepgsql.debug_audit = (on|off)
*/ */
static bool sepgsql_debug_audit; static bool sepgsql_debug_audit = false;
bool bool
sepgsql_get_debug_audit(void) sepgsql_get_debug_audit(void)

View File

@ -75,7 +75,7 @@
* User-tweakable parameters * User-tweakable parameters
*/ */
int DefaultXactIsoLevel = XACT_READ_COMMITTED; int DefaultXactIsoLevel = XACT_READ_COMMITTED;
int XactIsoLevel; int XactIsoLevel = XACT_READ_COMMITTED;
bool DefaultXactReadOnly = false; bool DefaultXactReadOnly = false;
bool XactReadOnly; bool XactReadOnly;

View File

@ -131,7 +131,7 @@ bool wal_init_zero = true;
bool wal_recycle = true; bool wal_recycle = true;
bool log_checkpoints = true; bool log_checkpoints = true;
int sync_method = DEFAULT_SYNC_METHOD; int sync_method = DEFAULT_SYNC_METHOD;
int wal_level = WAL_LEVEL_MINIMAL; int wal_level = WAL_LEVEL_REPLICA;
int CommitDelay = 0; /* precommit delay in microseconds */ int CommitDelay = 0; /* precommit delay in microseconds */
int CommitSiblings = 5; /* # concurrent xacts needed to sleep */ int CommitSiblings = 5; /* # concurrent xacts needed to sleep */
int wal_retrieve_retry_interval = 5000; int wal_retrieve_retry_interval = 5000;

View File

@ -58,8 +58,8 @@ char *SSLECDHCurve;
/* GUC variable: if false, prefer client ciphers */ /* GUC variable: if false, prefer client ciphers */
bool SSLPreferServerCiphers; bool SSLPreferServerCiphers;
int ssl_min_protocol_version; int ssl_min_protocol_version = PG_TLS1_2_VERSION;
int ssl_max_protocol_version; int ssl_max_protocol_version = PG_TLS_ANY;
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/* Procedures common to all secure sessions */ /* Procedures common to all secure sessions */

View File

@ -196,7 +196,7 @@ BackgroundWorker *MyBgworkerEntry = NULL;
/* The socket number we are listening for connections on */ /* The socket number we are listening for connections on */
int PostPortNumber; int PostPortNumber = DEF_PGPORT;
/* The directory names for Unix socket(s) */ /* The directory names for Unix socket(s) */
char *Unix_socket_directories; char *Unix_socket_directories;

View File

@ -142,22 +142,22 @@ bool track_io_timing = false;
* for buffers not belonging to tablespaces that have their * for buffers not belonging to tablespaces that have their
* effective_io_concurrency parameter set. * effective_io_concurrency parameter set.
*/ */
int effective_io_concurrency = 0; int effective_io_concurrency = DEFAULT_EFFECTIVE_IO_CONCURRENCY;
/* /*
* Like effective_io_concurrency, but used by maintenance code paths that might * Like effective_io_concurrency, but used by maintenance code paths that might
* benefit from a higher setting because they work on behalf of many sessions. * benefit from a higher setting because they work on behalf of many sessions.
* Overridden by the tablespace setting of the same name. * Overridden by the tablespace setting of the same name.
*/ */
int maintenance_io_concurrency = 0; int maintenance_io_concurrency = DEFAULT_MAINTENANCE_IO_CONCURRENCY;
/* /*
* GUC variables about triggering kernel writeback for buffers written; OS * GUC variables about triggering kernel writeback for buffers written; OS
* dependent defaults are set via the GUC mechanism. * dependent defaults are set via the GUC mechanism.
*/ */
int checkpoint_flush_after = 0; int checkpoint_flush_after = DEFAULT_CHECKPOINT_FLUSH_AFTER;
int bgwriter_flush_after = 0; int bgwriter_flush_after = DEFAULT_BGWRITER_FLUSH_AFTER;
int backend_flush_after = 0; int backend_flush_after = DEFAULT_BACKEND_FLUSH_AFTER;
/* local state for StartBufferIO and related functions */ /* local state for StartBufferIO and related functions */
static BufferDesc *InProgressBuf = NULL; static BufferDesc *InProgressBuf = NULL;

View File

@ -109,7 +109,7 @@ const struct config_enum_entry dynamic_shared_memory_options[] = {
}; };
/* Implementation selector. */ /* Implementation selector. */
int dynamic_shared_memory_type; int dynamic_shared_memory_type = DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE;
/* Amount of space reserved for DSM segments in the main area. */ /* Amount of space reserved for DSM segments in the main area. */
int min_dynamic_shared_memory; int min_dynamic_shared_memory;

View File

@ -94,8 +94,8 @@
/* GUC variables */ /* GUC variables */
int xmlbinary; int xmlbinary = XMLBINARY_BASE64;
int xmloption; int xmloption = XMLOPTION_CONTENT;
#ifdef USE_LIBXML #ifdef USE_LIBXML

View File

@ -116,7 +116,7 @@ static void PlanCacheObjectCallback(Datum arg, int cacheid, uint32 hashvalue);
static void PlanCacheSysCallback(Datum arg, int cacheid, uint32 hashvalue); static void PlanCacheSysCallback(Datum arg, int cacheid, uint32 hashvalue);
/* GUC parameter */ /* GUC parameter */
int plan_cache_mode; int plan_cache_mode = PLAN_CACHE_MODE_AUTO;
/* /*
* InitPlanCache: initialize module during InitPostgres. * InitPlanCache: initialize module during InitPostgres.

View File

@ -107,7 +107,7 @@ extern bool redirection_done;
emit_log_hook_type emit_log_hook = NULL; emit_log_hook_type emit_log_hook = NULL;
/* GUC parameters */ /* GUC parameters */
int Log_error_verbosity = PGERROR_VERBOSE; int Log_error_verbosity = PGERROR_DEFAULT;
char *Log_line_prefix = NULL; /* format for extra log line info */ char *Log_line_prefix = NULL; /* format for extra log line info */
int Log_destination = LOG_DESTINATION_STDERR; int Log_destination = LOG_DESTINATION_STDERR;
char *Log_destination_string = NULL; char *Log_destination_string = NULL;

View File

@ -133,8 +133,8 @@ int max_parallel_maintenance_workers = 2;
* MaxBackends is computed by PostmasterMain after modules have had a chance to * MaxBackends is computed by PostmasterMain after modules have had a chance to
* register background workers. * register background workers.
*/ */
int NBuffers = 1000; int NBuffers = 16384;
int MaxConnections = 90; int MaxConnections = 100;
int max_worker_processes = 8; int max_worker_processes = 8;
int max_parallel_workers = 8; int max_parallel_workers = 8;
int MaxBackends = 0; int MaxBackends = 0;

View File

@ -526,7 +526,7 @@ int ssl_renegotiation_limit;
* This really belongs in pg_shmem.c, but is defined here so that it doesn't * This really belongs in pg_shmem.c, but is defined here so that it doesn't
* need to be duplicated in all the different implementations of pg_shmem.c. * need to be duplicated in all the different implementations of pg_shmem.c.
*/ */
int huge_pages; int huge_pages = HUGE_PAGES_TRY;
int huge_page_size; int huge_page_size;
/* /*
@ -543,7 +543,14 @@ static char *locale_ctype;
static char *server_encoding_string; static char *server_encoding_string;
static char *server_version_string; static char *server_version_string;
static int server_version_num; static int server_version_num;
static int syslog_facility;
#ifdef HAVE_SYSLOG
#define DEFAULT_SYSLOG_FACILITY LOG_LOCAL0
#else
#define DEFAULT_SYSLOG_FACILITY 0
#endif
static int syslog_facility = DEFAULT_SYSLOG_FACILITY;
static char *timezone_string; static char *timezone_string;
static char *log_timezone_string; static char *log_timezone_string;
static char *timezone_abbreviations_string; static char *timezone_abbreviations_string;
@ -559,7 +566,14 @@ static int shared_memory_size_in_huge_pages;
static int wal_block_size; static int wal_block_size;
static bool data_checksums; static bool data_checksums;
static bool integer_datetimes; static bool integer_datetimes;
static bool assert_enabled;
#ifdef USE_ASSERT_CHECKING
#define DEFAULT_ASSERT_ENABLED true
#else
#define DEFAULT_ASSERT_ENABLED false
#endif
static bool assert_enabled = DEFAULT_ASSERT_ENABLED;
static char *recovery_target_timeline_string; static char *recovery_target_timeline_string;
static char *recovery_target_string; static char *recovery_target_string;
static char *recovery_target_xid_string; static char *recovery_target_xid_string;
@ -1181,11 +1195,7 @@ struct config_bool ConfigureNamesBool[] =
GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
}, },
&assert_enabled, &assert_enabled,
#ifdef USE_ASSERT_CHECKING DEFAULT_ASSERT_ENABLED,
true,
#else
false,
#endif
NULL, NULL, NULL NULL, NULL, NULL
}, },
@ -1357,11 +1367,7 @@ struct config_bool ConfigureNamesBool[] =
gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.") gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
}, },
&update_process_title, &update_process_title,
#ifdef WIN32 DEFAULT_UPDATE_PROCESS_TITLE,
false,
#else
true,
#endif
NULL, NULL, NULL NULL, NULL, NULL
}, },
@ -2888,11 +2894,7 @@ struct config_int ConfigureNamesInt[] =
GUC_EXPLAIN GUC_EXPLAIN
}, },
&effective_io_concurrency, &effective_io_concurrency,
#ifdef USE_PREFETCH DEFAULT_EFFECTIVE_IO_CONCURRENCY,
1,
#else
0,
#endif
0, MAX_IO_CONCURRENCY, 0, MAX_IO_CONCURRENCY,
check_effective_io_concurrency, NULL, NULL check_effective_io_concurrency, NULL, NULL
}, },
@ -2906,11 +2908,7 @@ struct config_int ConfigureNamesInt[] =
GUC_EXPLAIN GUC_EXPLAIN
}, },
&maintenance_io_concurrency, &maintenance_io_concurrency,
#ifdef USE_PREFETCH DEFAULT_MAINTENANCE_IO_CONCURRENCY,
10,
#else
0,
#endif
0, MAX_IO_CONCURRENCY, 0, MAX_IO_CONCURRENCY,
check_maintenance_io_concurrency, assign_maintenance_io_concurrency, check_maintenance_io_concurrency, assign_maintenance_io_concurrency,
NULL NULL
@ -4613,11 +4611,7 @@ struct config_enum ConfigureNamesEnum[] =
NULL NULL
}, },
&syslog_facility, &syslog_facility,
#ifdef HAVE_SYSLOG DEFAULT_SYSLOG_FACILITY,
LOG_LOCAL0,
#else
0,
#endif
syslog_facility_options, syslog_facility_options,
NULL, assign_syslog_facility, NULL NULL, assign_syslog_facility, NULL
}, },

View File

@ -30,8 +30,9 @@
#include "utils/ps_status.h" #include "utils/ps_status.h"
extern char **environ; extern char **environ;
bool update_process_title = true;
/* GUC variable */
bool update_process_title = DEFAULT_UPDATE_PROCESS_TITLE;
/* /*
* Alternative ways of updating ps display: * Alternative ways of updating ps display:

View File

@ -69,6 +69,15 @@ extern PGDLLIMPORT bool zero_damaged_pages;
extern PGDLLIMPORT int bgwriter_lru_maxpages; extern PGDLLIMPORT int bgwriter_lru_maxpages;
extern PGDLLIMPORT double bgwriter_lru_multiplier; extern PGDLLIMPORT double bgwriter_lru_multiplier;
extern PGDLLIMPORT bool track_io_timing; extern PGDLLIMPORT bool track_io_timing;
/* only applicable when prefetching is available */
#ifdef USE_PREFETCH
#define DEFAULT_EFFECTIVE_IO_CONCURRENCY 1
#define DEFAULT_MAINTENANCE_IO_CONCURRENCY 10
#else
#define DEFAULT_EFFECTIVE_IO_CONCURRENCY 0
#define DEFAULT_MAINTENANCE_IO_CONCURRENCY 0
#endif
extern PGDLLIMPORT int effective_io_concurrency; extern PGDLLIMPORT int effective_io_concurrency;
extern PGDLLIMPORT int maintenance_io_concurrency; extern PGDLLIMPORT int maintenance_io_concurrency;

View File

@ -12,6 +12,13 @@
#ifndef PS_STATUS_H #ifndef PS_STATUS_H
#define PS_STATUS_H #define PS_STATUS_H
/* disabled on Windows as the performance overhead can be significant */
#ifdef WIN32
#define DEFAULT_UPDATE_PROCESS_TITLE false
#else
#define DEFAULT_UPDATE_PROCESS_TITLE true
#endif
extern PGDLLIMPORT bool update_process_title; extern PGDLLIMPORT bool update_process_title;
extern char **save_ps_display_args(int argc, char **argv); extern char **save_ps_display_args(int argc, char **argv);