Re: postmaster -d option (was Re: [GENERAL] Relation 0 does - Mailing list pgsql-hackers
| From | Bruce Momjian |
|---|---|
| Subject | Re: postmaster -d option (was Re: [GENERAL] Relation 0 does |
| Date | |
| Msg-id | 200209270358.g8R3wKM00623@candle.pha.pa.us Whole thread Raw |
| In response to | Re: postmaster -d option (was Re: [GENERAL] Relation 0 does not exist) (Tom Lane <tgl@sss.pgh.pa.us>) |
| List | pgsql-hackers |
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > diff -c -c -r1.294 postgres.c
> > *** src/backend/tcop/postgres.c 25 Sep 2002 20:31:40 -0000 1.294
> > --- src/backend/tcop/postgres.c 26 Sep 2002 05:15:41 -0000
> > ***************
> > *** 1281,1288 ****
> > * -d 0 allows user to prevent postmaster debug
> > * from propagating to backend.
> > */
> > ! SetConfigOption("server_min_messages", "notice",
> > ! ctx, gucsource);
> > }
> > break;
>
> > --- 1281,1287 ----
> > * -d 0 allows user to prevent postmaster debug
> > * from propagating to backend.
> > */
> > ! ResetPGVariable("server_min_messages");
> > }
> > break;
>
Turns out I had to revert this change. There isn't a username at this
point in the code so the ResetPGVariable username test fails, and even
then, I don't think there is any way to set a variable to the value
before -d5 set it.
> If you want "export PGOPTIONS=-d0" to do what the comment says, you'd
> also need to Reset all of the other GUC variables that -dN might have
> set. However, I'm not sure that I agree with the goal in the first
> place. If the admin has set debugging on the postmaster command line,
> should it really be possible for users to turn it off so easily?
I see what you are saying, that you can pass -d0 from the client and
undo the -d5. Yes, I was wondering about that because even on the
command line, if you do -d5 -d0, you still get those extra options.
OK, attached patch applied. The restriction that you can't lower the
debug level with PGOPTIONS is a separate issue. What I clearly didn't
want to do was to reset those other options for -d0, and I didn't have
to do that for -d0 to work as advertised.
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Index: src/backend/tcop/postgres.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/tcop/postgres.c,v
retrieving revision 1.296
diff -c -c -r1.296 postgres.c
*** src/backend/tcop/postgres.c 27 Sep 2002 03:34:15 -0000 1.296
--- src/backend/tcop/postgres.c 27 Sep 2002 03:49:34 -0000
***************
*** 1136,1141 ****
--- 1136,1142 ----
const char *DBName = NULL;
bool secure;
int errs = 0;
+ int debug_flag = 0;
GucContext ctx;
GucSource gucsource;
char *tmp;
***************
*** 1250,1255 ****
--- 1251,1257 ----
case 'd': /* debug level */
{
+ debug_flag = atoi(optarg);
/* Set server debugging level. */
if (atoi(optarg) != 0)
{
***************
*** 1259,1283 ****
SetConfigOption("server_min_messages", debugstr, ctx, gucsource);
pfree(debugstr);
- /*
- * -d is not the same as setting
- * client_min_messages because it enables other
- * output options.
- */
- if (atoi(optarg) >= 1)
- SetConfigOption("log_connections", "true", ctx, gucsource);
- if (atoi(optarg) >= 2)
- SetConfigOption("log_statement", "true", ctx, gucsource);
- if (atoi(optarg) >= 3)
- SetConfigOption("debug_print_parse", "true", ctx, gucsource);
- if (atoi(optarg) >= 4)
- SetConfigOption("debug_print_plan", "true", ctx, gucsource);
- if (atoi(optarg) >= 5)
- SetConfigOption("debug_print_rewritten", "true", ctx, gucsource);
}
else
/*
! * -d 0 allows user to prevent postmaster debug
* from propagating to backend. It would be nice
* to set it to the postgresql.conf value here.
*/
--- 1261,1270 ----
SetConfigOption("server_min_messages", debugstr, ctx, gucsource);
pfree(debugstr);
}
else
/*
! * -d0 allows user to prevent postmaster debug
* from propagating to backend. It would be nice
* to set it to the postgresql.conf value here.
*/
***************
*** 1519,1524 ****
--- 1506,1527 ----
errs++;
break;
}
+
+ /*
+ * -d is not the same as setting
+ * server_min_messages because it enables other
+ * output options.
+ */
+ if (debug_flag >= 1)
+ SetConfigOption("log_connections", "true", ctx, gucsource);
+ if (debug_flag >= 2)
+ SetConfigOption("log_statement", "true", ctx, gucsource);
+ if (debug_flag >= 3)
+ SetConfigOption("debug_print_parse", "true", ctx, gucsource);
+ if (debug_flag >= 4)
+ SetConfigOption("debug_print_plan", "true", ctx, gucsource);
+ if (debug_flag >= 5)
+ SetConfigOption("debug_print_rewritten", "true", ctx, gucsource);
/*
* Post-processing for command line options.
pgsql-hackers by date: