postgres.git / summary / log / commit / refs

commit    da33a3894e0fc440ac53cdc0f2e360e703b13b8c
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Fri May 29 15:57:33 2015 +0000
First released in: 9.5.0

    Revert exporting of internal GUC variable "data_directory".
    
    This undoes a poorly-thought-out choice in commit 970a18687f9b3058, namely
    to export guc.c's internal variable data_directory.  The authoritative
    variable so far as C code is concerned is DataDir; there is no reason for
    anything except specific bits of GUC code to look at the GUC variable.
    
    After yesterday's commits fixing the fsync-on-restart patch, the only
    remaining misuse of data_directory was in AlterSystemSetConfigFile(),
    which would be much better off just using a relative path anyhow: it's
    less code and it doesn't break if the DBA moves the data directory of a
    running system, which is a case we've taken some pains over in the past.
    
    This is mostly cosmetic, so no need for a back-patch (and I'd be hesitant
    to remove a global variable in stable branches anyway).


src/backend/utils/misc/guc.c | 10 +++++----- src/include/utils/guc.h | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index be7ba4f29d8..b3c9f14ea4d 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -435,7 +435,6 @@ int temp_file_limit = -1; int num_temp_buffers = 1024; char *cluster_name = ""; -char *data_directory; char *ConfigFileName; char *HbaFileName; char *IdentFileName; @@ -476,6 +475,7 @@ static char *timezone_string; static char *log_timezone_string; static char *timezone_abbreviations_string; static char *XactIsoLevel_string; +static char *data_directory; static char *session_authorization_string; static int max_function_args; static int max_index_keys; @@ -6895,11 +6895,11 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt) } /* - * Use data directory as reference path for PG_AUTOCONF_FILENAME and its - * corresponding temporary file. + * PG_AUTOCONF_FILENAME and its corresponding temporary file are always in + * the data directory, so we can reference them by simple relative paths. */ - join_path_components(AutoConfFileName, data_directory, PG_AUTOCONF_FILENAME); - canonicalize_path(AutoConfFileName); + snprintf(AutoConfFileName, sizeof(AutoConfFileName), "%s", + PG_AUTOCONF_FILENAME); snprintf(AutoConfTmpFileName, sizeof(AutoConfTmpFileName), "%s.%s", AutoConfFileName, "tmp"); diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index a8191c94c39..ffe1168ccc1 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -247,7 +247,6 @@ extern int temp_file_limit; extern int num_temp_buffers; extern char *cluster_name; -extern char *data_directory; extern char *ConfigFileName; extern char *HbaFileName; extern char *IdentFileName; [parent: d8179b001ae5]