aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/misc/guc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r--src/backend/utils/misc/guc.c204
1 files changed, 1 insertions, 203 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 5d71c3b7a43..60f640639ef 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.120 2003/05/02 21:59:31 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.121 2003/05/02 22:01:51 momjian Exp $
*
*--------------------------------------------------------------------
*/
@@ -60,9 +60,6 @@
#define PG_KRB_SRVTAB ""
#endif
-#ifdef EXEC_BACKEND
-#define CONFIG_EXEC_PARAMS "global/config_exec_params"
-#endif
/* XXX these should appear in other modules' header files */
extern bool Log_connections;
@@ -2804,204 +2801,6 @@ _ShowOption(struct config_generic * record)
}
-#ifdef EXEC_BACKEND
-/*
- * This routine dumps out all non-default GUC options into a binary
- * file that is read by all exec'ed backends. The format is:
- *
- * variable name, string, null terminated
- * variable value, string, null terminated
- * variable source, integer
- */
-void
-write_nondefault_variables(GucContext context)
-{
- int i;
- char *new_filename, *filename;
- int elevel;
- FILE *fp;
-
- Assert(context == PGC_POSTMASTER || context == PGC_SIGHUP);
- Assert(DataDir);
- elevel = (context == PGC_SIGHUP) ? DEBUG3 : ERROR;
-
- /*
- * Open file
- */
- new_filename = malloc(strlen(DataDir) + strlen(CONFIG_EXEC_PARAMS) +
- strlen(".new") + 2);
- filename = malloc(strlen(DataDir) + strlen(CONFIG_EXEC_PARAMS) + 2);
- if (new_filename == NULL || filename == NULL)
- {
- elog(elevel, "out of memory");
- return;
- }
- sprintf(new_filename, "%s/" CONFIG_EXEC_PARAMS ".new", DataDir);
- sprintf(filename, "%s/" CONFIG_EXEC_PARAMS, DataDir);
-
- fp = AllocateFile(new_filename, "w");
- if (!fp)
- {
- free(new_filename);
- free(filename);
- elog(elevel, "could not write exec config params file `"
- CONFIG_EXEC_PARAMS "': %s", strerror(errno));
- return;
- }
-
- for (i = 0; i < num_guc_variables; i++)
- {
- struct config_generic *gconf = guc_variables[i];
-
- if (gconf->source != PGC_S_DEFAULT)
- {
- fprintf(fp, "%s", gconf->name);
- fputc(0, fp);
-
- switch (gconf->vartype)
- {
- case PGC_BOOL:
- {
- struct config_bool *conf = (struct config_bool *) gconf;
-
- if (*conf->variable == 0)
- fprintf(fp, "false");
- else
- fprintf(fp, "true");
- }
- break;
-
- case PGC_INT:
- {
- struct config_int *conf = (struct config_int *) gconf;
-
- fprintf(fp, "%d", *conf->variable);
- }
- break;
-
- case PGC_REAL:
- {
- struct config_real *conf = (struct config_real *) gconf;
-
- /* Could lose precision here? */
- fprintf(fp, "%f", *conf->variable);
- }
- break;
-
- case PGC_STRING:
- {
- struct config_string *conf = (struct config_string *) gconf;
-
- fprintf(fp, "%s", *conf->variable);
- }
- break;
- }
-
- fputc(0, fp);
-
- fwrite(&gconf->source, sizeof(gconf->source), 1, fp);
- }
- }
-
- FreeFile(fp);
- /* Put new file in place, this could delay on Win32 */
- rename(new_filename, filename);
- free(new_filename);
- free(filename);
- return;
-}
-
-
-/*
- * Read string, including null byte from file
- *
- * Return NULL on EOF and nothing read
- */
-static char *
-read_string_with_null(FILE *fp)
-{
- int i = 0, ch, maxlen = 256;
- char *str = NULL;
-
- do
- {
- if ((ch = fgetc(fp)) == EOF)
- {
- if (i == 0)
- return NULL;
- else
- elog(FATAL, "Invalid format of exec config params file");
- }
- if (i == 0)
- str = malloc(maxlen);
- else if (i == maxlen)
- str = realloc(str, maxlen *= 2);
- str[i++] = ch;
- } while (ch != 0);
-
- return str;
-}
-
-
-/*
- * This routine loads a previous postmaster dump of its non-default
- * settings.
- */
-void
-read_nondefault_variables(void)
-{
- char *filename;
- FILE *fp;
- char *varname, *varvalue;
- int varsource;
-
- Assert(DataDir);
-
- /*
- * Open file
- */
- filename = malloc(strlen(DataDir) + strlen(CONFIG_EXEC_PARAMS) + 2);
- if (filename == NULL)
- {
- elog(ERROR, "out of memory");
- return;
- }
- sprintf(filename, "%s/" CONFIG_EXEC_PARAMS, DataDir);
-
- fp = AllocateFile(filename, "r");
- if (!fp)
- {
- free(filename);
- /* File not found is fine */
- if (errno != ENOENT)
- elog(FATAL, "could not read exec config params file `"
- CONFIG_EXEC_PARAMS "': %s", strerror(errno));
- return;
- }
-
- while (1)
- {
- if ((varname = read_string_with_null(fp)) == NULL)
- break;
-
- if ((varvalue = read_string_with_null(fp)) == NULL)
- elog(FATAL, "Invalid format of exec config params file");
- if (fread(&varsource, sizeof(varsource), 1, fp) == 0)
- elog(FATAL, "Invalid format of exec config params file");
-
- (void) set_config_option(varname, varvalue, PGC_POSTMASTER,
- varsource, false, true);
- free(varname);
- free(varvalue);
- }
-
- FreeFile(fp);
- free(filename);
- return;
-}
-#endif
-
-
/*
* A little "long argument" simulation, although not quite GNU
* compliant. Takes a string of the form "some-option=some value" and
@@ -3404,4 +3203,3 @@ assign_msglvl(int *var, const char *newval, bool doit, bool interactive)
#include "guc-file.c"
-