Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)

2002-09-26 Thread Tom Lane

Bruce Momjian <[EMAIL PROTECTED]> writes:
> diff -c -c -r1.294 postgres.c
> *** src/backend/tcop/postgres.c25 Sep 2002 20:31:40 -1.294
> --- src/backend/tcop/postgres.c26 Sep 2002 05:15:41 -
> ***
> *** 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;
  

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?

regards, tom lane

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)

2002-09-25 Thread Bruce Momjian

Tom Lane wrote:
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > ... Now, we just have the GUC value which does
> > propogate like the global one did.  Does the postmaster still pass -dX
> > down to the child like it used to?
> 
> Evidently not; else Patrick wouldn't be complaining that it doesn't
> work like it used to.

OK, got it.  I knew server_min_messages would propogate to the client,
but that doesn't trigger the -d special cases in postgres.c.  I re-added
the -d flag propogation to the postmaster.  I also changed the postgres
-d0 behavior to just reset server_min_messages rather than setting it to
'notice.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (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/postmaster/postmaster.c
===
RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v
retrieving revision 1.288
diff -c -c -r1.288 postmaster.c
*** src/backend/postmaster/postmaster.c 4 Sep 2002 20:31:24 -   1.288
--- src/backend/postmaster/postmaster.c 26 Sep 2002 05:15:33 -
***
*** 230,235 
--- 230,237 
  
  static unsigned int random_seed = 0;
  
+ static intdebug_flag = 0;
+ 
  extern char *optarg;
  extern intoptind,
opterr;
***
*** 452,457 
--- 454,460 
SetConfigOption("server_min_messages", 
debugstr,

PGC_POSTMASTER, PGC_S_ARGV);
pfree(debugstr);
+   debug_flag = atoi(optarg);
break;
}
case 'F':
***
*** 2028,2033 
--- 2031,2037 
char   *remote_host;
char   *av[ARGV_SIZE * 2];
int ac = 0;
+   chardebugbuf[ARGV_SIZE];
charprotobuf[ARGV_SIZE];
chardbbuf[ARGV_SIZE];
charoptbuf[ARGV_SIZE];
***
*** 2207,2212 
--- 2211,2225 
 */
  
av[ac++] = "postgres";
+ 
+   /*
+* Pass the requested debugging level along to the backend.
+*/
+   if (debug_flag > 0)
+   {
+   sprintf(debugbuf, "-d%d", debug_flag);
+   av[ac++] = debugbuf;
+   }
  
/*
 * Pass any backend switches specified with -o in the postmaster's own
Index: src/backend/tcop/postgres.c
===
RCS file: /cvsroot/pgsql-server/src/backend/tcop/postgres.c,v
retrieving revision 1.294
diff -c -c -r1.294 postgres.c
*** src/backend/tcop/postgres.c 25 Sep 2002 20:31:40 -  1.294
--- src/backend/tcop/postgres.c 26 Sep 2002 05:15:41 -
***
*** 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;
  



---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)

2002-09-25 Thread Tom Lane

Bruce Momjian <[EMAIL PROTECTED]> writes:
> ... Now, we just have the GUC value which does
> propogate like the global one did.  Does the postmaster still pass -dX
> down to the child like it used to?

Evidently not; else Patrick wouldn't be complaining that it doesn't
work like it used to.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org



Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)

2002-09-25 Thread Bruce Momjian


Uh, yes, it is a little confusing and I am not sure that patch is right
anymore. I haven't applied it.

Another issue is that we used to have a global debug_level variable that was
propogated to the client.  Now, we just have the GUC value which does
propogate like the global one did.  Does the postmaster still pass -dX
down to the child like it used to?  I don't see why you say, "The
postmaster.c code is blowing off all those considerations."

I -d0 think functions properly except that it sets the value to 'notice'
rather than resetting it to the postgresql.conf value.  Is there a way
to do that?

---

Tom Lane wrote:
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > Tom Lane wrote:
> >> (Looks at code...)  Ah.  It looks like -d to the postmaster no longer
> >> means anywhere near what it used to.  Bruce --- compare the handling
> >> of -d in the backend (postgres.c lines 1251ff) with its handling in
> >> the postmaster (postmaster.c lines 444ff).  Big difference.  Are we
> >> going to make these more alike?  If so, which one do we like?
> 
> > I am sorry but I don't understand.  They look like they both set
> > server_min_messages.
> 
> Yeah, but postgres.c *also* sets log_connections, log_statement,
> debug_print_parse, debug_print_plan, debug_print_rewritten depending
> on the -d level.  This behavior is not random; it's an attempt to
> reproduce the effects of the historical -d switch.  The postmaster.c
> code is blowing off all those considerations.
> 
> > *** 1275,1288 
> > if (atoi(optarg) >= 5)
> > 
>SetConfigOption("debug_print_rewritten", "true", ctx, gucsource);
> > }
> > -   else
> > - 
> > -   /*
> > -* -d 0 allows user to prevent 
>postmaster debug
> > -* from propagating to backend.
> > -*/
> > -   SetConfigOption("server_min_messages", 
>"notice",
> > -   ctx, 
>gucsource);
> > }
> > break;
> 
> I think you are deleting your own code there ... why?
> 
>   regards, tom lane
> 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)

2002-09-25 Thread Tom Lane

Bruce Momjian <[EMAIL PROTECTED]> writes:
> Tom Lane wrote:
>> (Looks at code...)  Ah.  It looks like -d to the postmaster no longer
>> means anywhere near what it used to.  Bruce --- compare the handling
>> of -d in the backend (postgres.c lines 1251ff) with its handling in
>> the postmaster (postmaster.c lines 444ff).  Big difference.  Are we
>> going to make these more alike?  If so, which one do we like?

> I am sorry but I don't understand.  They look like they both set
> server_min_messages.

Yeah, but postgres.c *also* sets log_connections, log_statement,
debug_print_parse, debug_print_plan, debug_print_rewritten depending
on the -d level.  This behavior is not random; it's an attempt to
reproduce the effects of the historical -d switch.  The postmaster.c
code is blowing off all those considerations.

> *** 1275,1288 
>   if (atoi(optarg) >= 5)
>   
>SetConfigOption("debug_print_rewritten", "true", ctx, gucsource);
>   }
> - else
> - 
> - /*
> -  * -d 0 allows user to prevent 
>postmaster debug
> -  * from propagating to backend.
> -  */
> - SetConfigOption("server_min_messages", 
>"notice",
> - ctx, 
>gucsource);
>   }
>   break;

I think you are deleting your own code there ... why?

regards, tom lane

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]



Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)

2002-09-25 Thread Bruce Momjian

Tom Lane wrote:
> Patrick Welche <[EMAIL PROTECTED]> writes:
> > ... I was running postmaster -d4, yet the only
> > query I saw was the last LOG one. I pretty sure that I would see all queries
> > with -d3 before..
> 
> It looked to me like you were just running with the recently-added
> frill to log only queries that cause errors; which is on by default.
> 
> (Looks at code...)  Ah.  It looks like -d to the postmaster no longer
> means anywhere near what it used to.  Bruce --- compare the handling
> of -d in the backend (postgres.c lines 1251ff) with its handling in
> the postmaster (postmaster.c lines 444ff).  Big difference.  Are we
> going to make these more alike?  If so, which one do we like?

I am sorry but I don't understand.  They look like they both set
server_min_messages.  There was a comment in one that said
client_min_messages but I just fixed that.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (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.294
diff -c -c -r1.294 postgres.c
*** src/backend/tcop/postgres.c 25 Sep 2002 20:31:40 -  1.294
--- src/backend/tcop/postgres.c 26 Sep 2002 01:57:48 -
***
*** 1258,1267 
sprintf(debugstr, "debug%s", optarg);
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)
--- 1258,1266 
sprintf(debugstr, "debug%s", optarg);
SetConfigOption("server_min_messages", 
debugstr, ctx, gucsource);
pfree(debugstr);
/*
 * -d is not the same as setting
!* server_min_messages because it 
enables other
 * output options.
 */
if (atoi(optarg) >= 1)
***
*** 1275,1288 
if (atoi(optarg) >= 5)

SetConfigOption("debug_print_rewritten", "true", ctx, gucsource);
}
-   else
- 
-   /*
-* -d 0 allows user to prevent 
postmaster debug
-* from propagating to backend.
-*/
-   SetConfigOption("server_min_messages", 
"notice",
-   ctx, 
gucsource);
}
break;
  
--- 1274,1279 



---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])