Re: use GUC for cmdline

From: Marko Kreen <marko(at)l-t(dot)ee>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, pgsql-patches(at)postgresql(dot)org
Subject: Re: use GUC for cmdline
Date: 2001-06-22 16:29:14
Message-ID: 20010622182914.A16887@l-t.ee
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

On Fri, Jun 22, 2001 at 09:18:55AM -0400, Tom Lane wrote:
> Marko Kreen <marko(at)l-t(dot)ee> writes:
> > secure_ctx changes too. it will be PGC_BACKEND after '-p'.
>
> Oh, okay, I missed that part. Could we see the total state of the
> patch --- ie, a diff against current CVS, not a bunch of deltas?
> I've gotten confused about what's in and what's out.

Ok, here it is. Cleared the ctx comment too - after -p
it will be PGC_BACKEND in any case.

--
marko

Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/postmaster/postmaster.c,v
retrieving revision 1.225
diff -u -c -r1.225 postmaster.c
*** src/backend/postmaster/postmaster.c 2001/06/21 16:43:24 1.225
--- src/backend/postmaster/postmaster.c 2001/06/22 13:57:02
***************
*** 429,442 ****
#ifndef USE_ASSERT_CHECKING
postmaster_error("Assert checking is not compiled in.");
#else
! assert_enabled = atoi(optarg);
#endif
break;
case 'a':
/* Can no longer set authentication method. */
break;
case 'B':
! NBuffers = atoi(optarg);
break;
case 'b':
/* Can no longer set the backend executable file to use. */
--- 429,442 ----
#ifndef USE_ASSERT_CHECKING
postmaster_error("Assert checking is not compiled in.");
#else
! SetConfigOption("debug_assertions", optarg, PGC_POSTMASTER, true);
#endif
break;
case 'a':
/* Can no longer set authentication method. */
break;
case 'B':
! SetConfigOption("shared_buffers", optarg, PGC_POSTMASTER, true);
break;
case 'b':
/* Can no longer set the backend executable file to use. */
***************
*** 450,472 ****
* Turn on debugging for the postmaster and the backend
* servers descended from it.
*/
! DebugLvl = atoi(optarg);
break;
case 'F':
! enableFsync = false;
break;
case 'h':
! VirtualHost = optarg;
break;
case 'i':
! NetServer = true;
break;
case 'k':
! UnixSocketDir = optarg;
break;
#ifdef USE_SSL
case 'l':
! EnableSSL = true;
break;
#endif
case 'm':
--- 450,472 ----
* Turn on debugging for the postmaster and the backend
* servers descended from it.
*/
! SetConfigOption("debug_level", optarg, PGC_POSTMASTER, true);
break;
case 'F':
! SetConfigOption("enable_fsync", "false", PGC_POSTMASTER, true);
break;
case 'h':
! SetConfigOption("virtual_host", optarg, PGC_POSTMASTER, true);
break;
case 'i':
! SetConfigOption("tcpip_socket", "true", PGC_POSTMASTER, true);
break;
case 'k':
! SetConfigOption("unix_socket_directory", optarg, PGC_POSTMASTER, true);
break;
#ifdef USE_SSL
case 'l':
! SetConfigOption("ssl", "true", PGC_POSTMASTER, true);
break;
#endif
case 'm':
***************
*** 486,496 ****
* The max number of backends to start. Can't set to less
* than 1 or more than compiled-in limit.
*/
! MaxBackends = atoi(optarg);
! if (MaxBackends < 1)
! MaxBackends = 1;
! if (MaxBackends > MAXBACKENDS)
! MaxBackends = MAXBACKENDS;
break;
case 'n':
/* Don't reinit shared mem after abnormal exit */
--- 486,492 ----
* The max number of backends to start. Can't set to less
* than 1 or more than compiled-in limit.
*/
! SetConfigOption("max_connections", optarg, PGC_POSTMASTER, true);
break;
case 'n':
/* Don't reinit shared mem after abnormal exit */
***************
*** 507,513 ****
strcpy(original_extraoptions, optarg);
break;
case 'p':
! PostPortNumber = atoi(optarg);
break;
case 'S':

--- 503,509 ----
strcpy(original_extraoptions, optarg);
break;
case 'p':
! SetConfigOption("port", optarg, PGC_POSTMASTER, true);
break;
case 'S':

***************
*** 517,523 ****
* it's most badly needed on SysV-derived systems like
* SVR4 and HP-UX.
*/
! SilentMode = true;
break;
case 's':

--- 513,519 ----
* it's most badly needed on SysV-derived systems like
* SVR4 and HP-UX.
*/
! SetConfigOption("silent_mode", "true", PGC_POSTMASTER, true);
break;
case 's':

Index: src/backend/tcop/postgres.c
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/tcop/postgres.c,v
retrieving revision 1.223
diff -u -c -r1.223 postgres.c
*** src/backend/tcop/postgres.c 2001/06/20 18:07:55 1.223
--- src/backend/tcop/postgres.c 2001/06/22 13:57:07
***************
*** 1109,1114 ****
--- 1109,1116 ----
const char *DBName = NULL;
bool secure = true;
int errs = 0;
+ GucContext ctx;
+ char *tmp;

int firstchar;
StringInfo parser_input;
***************
*** 1118,1123 ****
--- 1120,1128 ----

char *potential_DataDir = NULL;

+ /* all options are allowed until '-p' */
+ ctx = PGC_POSTMASTER;
+
/*
* Catch standard options before doing much else. This even works on
* systems without getopt_long.
***************
*** 1191,1197 ****
{
case 'A':
#ifdef USE_ASSERT_CHECKING
! assert_enabled = atoi(optarg);
#else
fprintf(stderr, "Assert checking is not compiled in\n");
#endif
--- 1196,1202 ----
{
case 'A':
#ifdef USE_ASSERT_CHECKING
! SetConfigOption("debug_assertions", optarg, ctx, true);
#else
fprintf(stderr, "Assert checking is not compiled in\n");
#endif
***************
*** 1202,1209 ****
/*
* specify the size of buffer pool
*/
! if (secure)
! NBuffers = atoi(optarg);
break;

case 'C':
--- 1207,1213 ----
/*
* specify the size of buffer pool
*/
! SetConfigOption("shared_buffers", optarg, ctx, true);
break;

case 'C':
***************
*** 1220,1236 ****
break;

case 'd': /* debug level */
! DebugLvl = atoi(optarg);
! if (DebugLvl >= 1);
! Log_connections = true;
if (DebugLvl >= 2)
! Debug_print_query = true;
if (DebugLvl >= 3)
! Debug_print_parse = true;
if (DebugLvl >= 4)
! Debug_print_plan = true;
if (DebugLvl >= 5)
! Debug_print_rewritten = true;
break;

case 'E':
--- 1224,1241 ----
break;

case 'd': /* debug level */
! tmp = "true";
! SetConfigOption("debug_level", optarg, ctx, true);
! if (DebugLvl >= 1)
! SetConfigOption("log_connections", tmp, ctx, true);
if (DebugLvl >= 2)
! SetConfigOption("debug_print_query", tmp, ctx, true);
if (DebugLvl >= 3)
! SetConfigOption("debug_print_parse", tmp, ctx, true);
if (DebugLvl >= 4)
! SetConfigOption("debug_print_plan", tmp, ctx, true);
if (DebugLvl >= 5)
! SetConfigOption("debug_print_rewritten", tmp, ctx, true);
break;

case 'E':
***************
*** 1254,1261 ****
/*
* turn off fsync
*/
! if (secure)
! enableFsync = false;
break;

case 'f':
--- 1259,1265 ----
/*
* turn off fsync
*/
! SetConfigOption("fsync", "false", ctx, true);
break;

case 'f':
***************
*** 1263,1291 ****
/*
* f - forbid generation of certain plans
*/
switch (optarg[0])
{
case 's': /* seqscan */
! enable_seqscan = false;
break;
case 'i': /* indexscan */
! enable_indexscan = false;
break;
case 't': /* tidscan */
! enable_tidscan = false;
break;
case 'n': /* nestloop */
! enable_nestloop = false;
break;
case 'm': /* mergejoin */
! enable_mergejoin = false;
break;
case 'h': /* hashjoin */
! enable_hashjoin = false;
break;
default:
errs++;
}
break;

case 'i':
--- 1267,1298 ----
/*
* f - forbid generation of certain plans
*/
+ tmp = NULL;
switch (optarg[0])
{
case 's': /* seqscan */
! tmp = "enable_seqscan";
break;
case 'i': /* indexscan */
! tmp = "enable_indexscan";
break;
case 't': /* tidscan */
! tmp = "enable_tidscan";
break;
case 'n': /* nestloop */
! tmp = "enable_nestloop";
break;
case 'm': /* mergejoin */
! tmp = "enable_mergejoin";
break;
case 'h': /* hashjoin */
! tmp = "enable_hashjoin";
break;
default:
errs++;
}
+ if (tmp)
+ SetConfigOption(tmp, "false", ctx, true);
break;

case 'i':
***************
*** 1347,1352 ****
--- 1354,1360 ----
DBName = strdup(optarg);
secure = false; /* subsequent switches are NOT
* secure */
+ ctx = PGC_BACKEND;
}
break;

***************
*** 1355,1367 ****
/*
* S - amount of sort memory to use in 1k bytes
*/
! {
! int S;
!
! S = atoi(optarg);
! if (S >= 4 * BLCKSZ / 1024)
! SortMem = S;
! }
break;

case 's':
--- 1363,1369 ----
/*
* S - amount of sort memory to use in 1k bytes
*/
! SetConfigOption("sort_mem", optarg, ctx, true);
break;

case 's':
***************
*** 1369,1375 ****
/*
* s - report usage statistics (timings) after each query
*/
! Show_query_stats = 1;
break;

case 't':
--- 1371,1377 ----
/*
* s - report usage statistics (timings) after each query
*/
! SetConfigOption("show_query_stats", "true", ctx, true);
break;

case 't':
***************
*** 1383,1405 ****
* caution: -s can not be used together with -t.
* ----------------
*/
switch (optarg[0])
{
case 'p':
if (optarg[1] == 'a')
! Show_parser_stats = 1;
else if (optarg[1] == 'l')
! Show_planner_stats = 1;
else
errs++;
break;
case 'e':
! Show_executor_stats = 1;
break;
default:
errs++;
break;
}
break;

case 'v':
--- 1385,1410 ----
* caution: -s can not be used together with -t.
* ----------------
*/
+ tmp = NULL;
switch (optarg[0])
{
case 'p':
if (optarg[1] == 'a')
! tmp = "show_parser_stats";
else if (optarg[1] == 'l')
! tmp = "show_planner_stats";
else
errs++;
break;
case 'e':
! tmp = "show_parser_stats";
break;
default:
errs++;
break;
}
+ if (tmp)
+ SetConfigOption(tmp, "true", ctx, true);
break;

case 'v':
***************
*** 1463,1471 ****
elog(ERROR, "-c %s requires argument", optarg);
}

! /* all options are allowed if not under postmaster */
! SetConfigOption(name, value,
! (IsUnderPostmaster) ? PGC_BACKEND : PGC_POSTMASTER, true);
free(name);
if (value)
free(value);
--- 1468,1474 ----
elog(ERROR, "-c %s requires argument", optarg);
}

! SetConfigOption(name, value, ctx, true);
free(name);
if (value)
free(value);
Index: src/backend/utils/misc/guc.c
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/utils/misc/guc.c,v
retrieving revision 1.41
diff -u -c -r1.41 guc.c
*** src/backend/utils/misc/guc.c 2001/06/19 23:40:10 1.41
--- src/backend/utils/misc/guc.c 2001/06/22 13:57:10
***************
*** 196,202 ****
{"fsync", PGC_SIGHUP, &enableFsync, true, NULL},
{"silent_mode", PGC_POSTMASTER, &SilentMode, false, NULL},

! {"log_connections", PGC_SIGHUP, &Log_connections, false, NULL},
{"log_timestamp", PGC_SIGHUP, &Log_timestamp, false, NULL},
{"log_pid", PGC_SIGHUP, &Log_pid, false, NULL},

--- 196,202 ----
{"fsync", PGC_SIGHUP, &enableFsync, true, NULL},
{"silent_mode", PGC_POSTMASTER, &SilentMode, 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},

***************
*** 276,282 ****
DEF_PGPORT, 1, 65535, NULL, NULL},

{"sort_mem", PGC_USERSET, &SortMem,
! 512, 1, INT_MAX, NULL, NULL},

{"debug_level", PGC_USERSET, &DebugLvl,
0, 0, 16, NULL, NULL},
--- 276,282 ----
DEF_PGPORT, 1, 65535, NULL, NULL},

{"sort_mem", PGC_USERSET, &SortMem,
! 512, 4*BLCKSZ/1024, INT_MAX, NULL, NULL},

{"debug_level", PGC_USERSET, &DebugLvl,
0, 0, 16, NULL, NULL},

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Peter Eisentraut 2001-06-22 18:39:28 Re: Python (PyGreSQL) make install patch
Previous Message Dave Cramer 2001-06-22 15:20:54 RE: Re: Re: [ADMIN] High memory usage [PATCH]