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: