OSDN Git Service

In bootstrap and standalone-backend modes, do not sort LOG elevel out
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 28 May 2003 17:25:02 +0000 (17:25 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 28 May 2003 17:25:02 +0000 (17:25 +0000)
of order; the 'server log' output is actually client output in these
scenarios and we ought to treat elevels the same way as in the client
case.  This allows initdb to not send backend stderr to /dev/null anymore,
which makes it much more likely that people will notice problems during
initdb.

src/backend/postmaster/postmaster.c
src/backend/utils/error/elog.c
src/backend/utils/init/globals.c
src/bin/initdb/initdb.sh
src/include/miscadmin.h

index 77aff02..e860fe1 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.329 2003/05/27 17:49:46 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.330 2003/05/28 17:25:02 tgl Exp $
  *
  * NOTES
  *
@@ -379,6 +379,8 @@ PostmasterMain(int argc, char *argv[])
 
        progname = argv[0];
 
+       IsPostmasterEnvironment = true;
+
        /*
         * Catch standard options before doing much else.  This even works on
         * systems without getopt_long.
index 6ca9f38..fd6d35b 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.109 2003/04/24 21:16:44 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.110 2003/05/28 17:25:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -189,25 +189,33 @@ errstart(int elevel, const char *filename, int lineno,
        }
 
        /* Determine whether message is enabled for server log output */
-       /* Complicated because LOG is sorted out-of-order for this purpose */
-       if (elevel == LOG || elevel == COMMERROR)
+       if (IsPostmasterEnvironment)
        {
-               if (log_min_messages == LOG)
-                       output_to_server = true;
-               else if (log_min_messages < FATAL)
-                       output_to_server = true;
-       }
-       else
-       {
-               /* elevel != LOG */
-               if (log_min_messages == LOG)
+               /* Complicated because LOG is sorted out-of-order for this purpose */
+               if (elevel == LOG || elevel == COMMERROR)
                {
-                       if (elevel >= FATAL)
+                       if (log_min_messages == LOG)
+                               output_to_server = true;
+                       else if (log_min_messages < FATAL)
                                output_to_server = true;
                }
-               /* Neither is LOG */
-               else if (elevel >= log_min_messages)
-                       output_to_server = true;
+               else
+               {
+                       /* elevel != LOG */
+                       if (log_min_messages == LOG)
+                       {
+                               if (elevel >= FATAL)
+                                       output_to_server = true;
+                       }
+                       /* Neither is LOG */
+                       else if (elevel >= log_min_messages)
+                               output_to_server = true;
+               }
+       }
+       else
+       {
+               /* In bootstrap/standalone case, do not sort LOG out-of-order */
+               output_to_server = (elevel >= log_min_messages);
        }
 
        /* Determine whether message is enabled for client output */
index 8a70716..a4b0889 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.69 2003/02/22 05:57:45 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.70 2003/05/28 17:25:02 tgl Exp $
  *
  * NOTES
  *       Globals used all over the place should be declared here and not
@@ -57,6 +57,8 @@ char     *DatabasePath = NULL;
 
 Oid                    MyDatabaseId = InvalidOid;
 
+/* these are initialized for the bootstrap/standalone case: */
+bool           IsPostmasterEnvironment = false;
 bool           IsUnderPostmaster = false;
 
 int                    DateStyle = USE_ISO_DATES;
index 4729052..67ae4b0 100644 (file)
@@ -27,7 +27,7 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.189 2003/05/15 15:50:19 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.190 2003/05/28 17:25:02 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -546,9 +546,7 @@ PGSQL_OPT="-F -D$PGDATA"
 
 if [ "$debug" = yes ]
 then
-    BACKEND_TALK_ARG="-d 5"
-else
-    PGSQL_OPT="$PGSQL_OPT -o /dev/null"
+    BOOTSTRAP_TALK_ARG="-d 5"
 fi
 
 
@@ -570,7 +568,7 @@ cat "$POSTGRES_BKI" \
   export LC_COLLATE
   export LC_CTYPE
   unset LC_ALL
-  "$PGPATH"/postgres -boot -x1 $PGSQL_OPT $BACKEND_TALK_ARG template1
+  "$PGPATH"/postgres -boot -x1 $PGSQL_OPT $BOOTSTRAP_TALK_ARG template1
 ) \
 || exit_nicely
 
index 18781c5..8621722 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: miscadmin.h,v 1.121 2003/05/03 03:52:07 momjian Exp $
+ * $Id: miscadmin.h,v 1.122 2003/05/28 17:25:02 tgl Exp $
  *
  * NOTES
  *       some of the information in this file should be moved to
@@ -104,6 +104,7 @@ extern void ProcessInterrupts(void);
 /*
  * from postmaster/postmaster.c
  */
+extern bool IsPostmasterEnvironment;
 extern bool IsUnderPostmaster;
 extern bool ClientAuthInProgress;
 extern const bool ExecBackend;