Re: use GUC for cmdline
| От | Marko Kreen |
|---|---|
| Тема | Re: use GUC for cmdline |
| Дата | |
| Msg-id | 20010622011312.A12283@l-t.ee обсуждение |
| Ответ на | Re: use GUC for cmdline (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: use GUC for cmdline
|
| Список | pgsql-patches |
On Thu, Jun 21, 2001 at 06:23:03PM -0400, Tom Lane wrote:
> Marko Kreen <marko@l-t.ee> writes:
> > if (DebugLvl >= 1);
> > - SetConfigOption("log_connections", tmp, ctx, true);
> > + SetConfigOption("log_connections", tmp, PGC_POSTMASTER, true);
>
> In this particular case, there is no reason for log_connections to be
> restricted that I can see --- it's a pretty harmless switch. I'd
> recommend downgrading its PGC restriction level to BACKEND.
>
> BTW, *please* remove the bogus ';' on the if() line.
>
> > if (secure)
> > - SetConfigOption("fsync", "false", ctx, true);
> > + SetConfigOption("fsync", "false", PGC_POSTMASTER, true);
>
> This seems like an appropriate fix. I would recommend doing the same
> with all the option switch settings that are protected with "if
> (secure)". This is not a hack: essentially it says we will treat
> options passed to the postmaster with -o as postmaster-time options.
Well?
--
marko
diff -u src/backend/tcop/postgres.c src/backend/tcop/postgres.c
--- src/backend/tcop/postgres.c
+++ src/backend/tcop/postgres.c
@@ -1110,6 +1110,7 @@
bool secure = true;
int errs = 0;
GucContext ctx;
+ GucContext secure_ctx = PGC_POSTMASTER;
char *tmp;
int firstchar;
@@ -1207,8 +1208,7 @@
/*
* specify the size of buffer pool
*/
- if (secure)
- SetConfigOption("shared_buffers", optarg, ctx, true);
+ SetConfigOption("shared_buffers", optarg, secure_ctx, true);
break;
case 'C':
@@ -1227,8 +1227,8 @@
case 'd': /* debug level */
tmp = "true";
SetConfigOption("debug_level", optarg, ctx, true);
- if (DebugLvl >= 1);
- SetConfigOption("log_connections", tmp, PGC_POSTMASTER, true);
+ if (DebugLvl >= 1)
+ SetConfigOption("log_connections", tmp, ctx, true);
if (DebugLvl >= 2)
SetConfigOption("debug_print_query", tmp, ctx, true);
if (DebugLvl >= 3)
@@ -1260,8 +1260,7 @@
/*
* turn off fsync
*/
- if (secure)
- SetConfigOption("fsync", "false", PGC_POSTMASTER, true);
+ SetConfigOption("fsync", "false", secure_ctx, true);
break;
case 'f':
@@ -1356,6 +1355,7 @@
DBName = strdup(optarg);
secure = false; /* subsequent switches are NOT
* secure */
+ secure_ctx = ctx;
}
break;
diff -u src/backend/utils/misc/guc.c src/backend/utils/misc/guc.c
--- src/backend/utils/misc/guc.c
+++ src/backend/utils/misc/guc.c
@@ -196,7 +196,7 @@
{"fsync", PGC_SIGHUP, &enableFsync, true, NULL},
{"silent_mode", PGC_POSTMASTER, &SilentMode, false, NULL},
- {"log_connections", PGC_SIGHUP, &Log_connections, false, NULL},
+ {"log_connections", PGC_BACKEND, &Log_connections, false, NULL},
{"log_timestamp", PGC_SIGHUP, &Log_timestamp, false, NULL},
{"log_pid", PGC_SIGHUP, &Log_pid, false, NULL},
В списке pgsql-patches по дате отправления: