Commit da33a389 authored by Tom Lane's avatar Tom Lane

Revert exporting of internal GUC variable "data_directory".

This undoes a poorly-thought-out choice in commit 970a1868, 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).
parent d8179b00
...@@ -435,7 +435,6 @@ int temp_file_limit = -1; ...@@ -435,7 +435,6 @@ int temp_file_limit = -1;
int num_temp_buffers = 1024; int num_temp_buffers = 1024;
char *cluster_name = ""; char *cluster_name = "";
char *data_directory;
char *ConfigFileName; char *ConfigFileName;
char *HbaFileName; char *HbaFileName;
char *IdentFileName; char *IdentFileName;
...@@ -476,6 +475,7 @@ static char *timezone_string; ...@@ -476,6 +475,7 @@ static char *timezone_string;
static char *log_timezone_string; static char *log_timezone_string;
static char *timezone_abbreviations_string; static char *timezone_abbreviations_string;
static char *XactIsoLevel_string; static char *XactIsoLevel_string;
static char *data_directory;
static char *session_authorization_string; static char *session_authorization_string;
static int max_function_args; static int max_function_args;
static int max_index_keys; static int max_index_keys;
...@@ -6895,11 +6895,11 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt) ...@@ -6895,11 +6895,11 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
} }
/* /*
* Use data directory as reference path for PG_AUTOCONF_FILENAME and its * PG_AUTOCONF_FILENAME and its corresponding temporary file are always in
* corresponding temporary file. * the data directory, so we can reference them by simple relative paths.
*/ */
join_path_components(AutoConfFileName, data_directory, PG_AUTOCONF_FILENAME); snprintf(AutoConfFileName, sizeof(AutoConfFileName), "%s",
canonicalize_path(AutoConfFileName); PG_AUTOCONF_FILENAME);
snprintf(AutoConfTmpFileName, sizeof(AutoConfTmpFileName), "%s.%s", snprintf(AutoConfTmpFileName, sizeof(AutoConfTmpFileName), "%s.%s",
AutoConfFileName, AutoConfFileName,
"tmp"); "tmp");
......
...@@ -247,7 +247,6 @@ extern int temp_file_limit; ...@@ -247,7 +247,6 @@ extern int temp_file_limit;
extern int num_temp_buffers; extern int num_temp_buffers;
extern char *cluster_name; extern char *cluster_name;
extern char *data_directory;
extern char *ConfigFileName; extern char *ConfigFileName;
extern char *HbaFileName; extern char *HbaFileName;
extern char *IdentFileName; extern char *IdentFileName;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment