diff options
Diffstat (limited to 'src/backend/utils/misc')
-rw-r--r-- | src/backend/utils/misc/guc-file.l | 1 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 21 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 4 |
3 files changed, 19 insertions, 7 deletions
diff --git a/src/backend/utils/misc/guc-file.l b/src/backend/utils/misc/guc-file.l index 70abf40a28e..809307da8d3 100644 --- a/src/backend/utils/misc/guc-file.l +++ b/src/backend/utils/misc/guc-file.l @@ -292,7 +292,6 @@ ProcessConfigFile(GucContext context) if (context == PGC_SIGHUP) { InitializeGUCOptionsFromEnvironment(); - pg_timezone_initialize(); pg_timezone_abbrev_initialize(); /* this selects SQL_ASCII in processes not connected to a database */ SetConfigOption("client_encoding", GetDatabaseEncodingName(), diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 6670997acde..a71729c2e70 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -187,6 +187,7 @@ static bool check_log_stats(bool *newval, void **extra, GucSource source); static bool check_canonical_path(char **newval, void **extra, GucSource source); static bool check_timezone_abbreviations(char **newval, void **extra, GucSource source); static void assign_timezone_abbreviations(const char *newval, void *extra); +static void pg_timezone_abbrev_initialize(void); static const char *show_archive_command(void); static void assign_tcp_keepalives_idle(int newval, void *extra); static void assign_tcp_keepalives_interval(int newval, void *extra); @@ -2547,7 +2548,7 @@ static struct config_string ConfigureNamesString[] = NULL }, &log_timezone_string, - NULL, + "GMT", check_log_timezone, assign_log_timezone, show_log_timezone }, @@ -2827,7 +2828,7 @@ static struct config_string ConfigureNamesString[] = GUC_REPORT }, &timezone_string, - NULL, + "GMT", check_timezone, assign_timezone, show_timezone }, { @@ -3817,7 +3818,7 @@ InitializeGUCOptions(void) * Before log_line_prefix could possibly receive a nonempty setting, make * sure that timezone processing is minimally alive (see elog.c). */ - pg_timezone_pre_initialize(); + pg_timezone_initialize(); /* * Build sorted array of all GUC variables. @@ -4115,6 +4116,15 @@ SelectConfigFiles(const char *userDoption, const char *progname) SetConfigOption("data_directory", DataDir, PGC_POSTMASTER, PGC_S_OVERRIDE); /* + * If timezone_abbreviations wasn't set in the configuration file, install + * the default value. We do it this way because we can't safely install + * a "real" value until my_exec_path is set, which may not have happened + * when InitializeGUCOptions runs, so the bootstrap default value cannot + * be the real desired default. + */ + pg_timezone_abbrev_initialize(); + + /* * Figure out where pg_hba.conf is, and make sure the path is absolute. */ if (HbaFileName) @@ -8444,8 +8454,11 @@ assign_timezone_abbreviations(const char *newval, void *extra) * This is called after initial loading of postgresql.conf. If no * timezone_abbreviations setting was found therein, select default. * If a non-default value is already installed, nothing will happen. + * + * This can also be called from ProcessConfigFile to establish the default + * value after a postgresql.conf entry for it is removed. */ -void +static void pg_timezone_abbrev_initialize(void) { SetConfigOption("timezone_abbreviations", "Default", diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index e713defea2c..a18f14ae253 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -406,7 +406,7 @@ #log_temp_files = -1 # log temporary files equal or larger # than the specified size in kilobytes; # -1 disables, 0 logs all temp files -#log_timezone = '(defaults to server environment setting)' +#log_timezone = 'GMT' #------------------------------------------------------------------------------ @@ -486,7 +486,7 @@ #datestyle = 'iso, mdy' #intervalstyle = 'postgres' -#timezone = '(defaults to server environment setting)' +#timezone = 'GMT' #timezone_abbreviations = 'Default' # Select the set of available time zone # abbreviations. Currently, there are # Default |