Change a couple of ill-advised uses of INFO elog level to WARNINGs; in
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Jan 2009 16:39:52 +0000 (16:39 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Jan 2009 16:39:52 +0000 (16:39 +0000)
particular this allows EmitWarningsOnPlaceholders messages to show up in the
postmaster log by default.  Update elog.h comment to make it clearer what INFO
is for, and fix one example in the SGML docs that was misusing it.  Per my
gripe of yesterday.

doc/src/sgml/trigger.sgml
src/backend/utils/misc/guc.c
src/include/utils/elog.h

index e2f86bab462f752f81d2a0d8fde7a5bac58187cb..1fe6f38ba595ea25211526471948cbec7f7e3369 100644 (file)
@@ -603,13 +603,13 @@ trigf(PG_FUNCTION_ARGS)
 
     /* connect to SPI manager */
     if ((ret = SPI_connect()) < 0)
-        elog(INFO, "trigf (fired %s): SPI_connect returned %d", when, ret);
+        elog(ERROR, "trigf (fired %s): SPI_connect returned %d", when, ret);
 
     /* get number of rows in table */
     ret = SPI_exec("SELECT count(*) FROM ttest", 0);
 
     if (ret < 0)
-        elog(NOTICE, "trigf (fired %s): SPI_exec returned %d", when, ret);
+        elog(ERROR, "trigf (fired %s): SPI_exec returned %d", when, ret);
 
     /* count(*) returns int8, so be careful to convert */
     i = DatumGetInt64(SPI_getbinval(SPI_tuptable->vals[0],
index b6ff4e716ce46acaae8cce7011420eb297ab1ecd..89a4e29ba23a597468e717f11e62295536a502de 100644 (file)
@@ -4541,7 +4541,7 @@ set_config_option(const char *name, const char *value,
                elevel = IsUnderPostmaster ? DEBUG3 : LOG;
        }
        else if (source == PGC_S_DATABASE || source == PGC_S_USER)
-               elevel = INFO;
+               elevel = WARNING;
        else
                elevel = ERROR;
 
@@ -5904,22 +5904,21 @@ DefineCustomEnumVariable(const char *name,
 void
 EmitWarningsOnPlaceholders(const char *className)
 {
-       struct config_generic **vars = guc_variables;
-       struct config_generic **last = vars + num_guc_variables;
-
-       int                     nameLen = strlen(className);
+       int                     classLen = strlen(className);
+       int                     i;
 
-       while (vars < last)
+       for (i = 0; i < num_guc_variables; i++)
        {
-               struct config_generic *var = *vars++;
+               struct config_generic *var = guc_variables[i];
 
                if ((var->flags & GUC_CUSTOM_PLACEHOLDER) != 0 &&
-                       strncmp(className, var->name, nameLen) == 0 &&
-                       var->name[nameLen] == GUC_QUALIFIER_SEPARATOR)
+                       strncmp(className, var->name, classLen) == 0 &&
+                       var->name[classLen] == GUC_QUALIFIER_SEPARATOR)
                {
-                       ereport(INFO,
+                       ereport(WARNING,
                                        (errcode(ERRCODE_UNDEFINED_OBJECT),
-                                        errmsg("unrecognized configuration parameter \"%s\"", var->name)));
+                                        errmsg("unrecognized configuration parameter \"%s\"",
+                                                       var->name)));
                }
        }
 }
@@ -5952,7 +5951,6 @@ GetPGVariableResultDesc(const char *name)
                                                   TEXTOID, -1, 0);
                TupleDescInitEntry(tupdesc, (AttrNumber) 3, "description",
                                                   TEXTOID, -1, 0);
-
        }
        else
        {
index 0a2fc2ab16286e15972ecb3aea27654ad39f0818..5b49d7ee340c4b88c155217f4cf80af658ee6bb8 100644 (file)
 #define COMMERROR      16                      /* Client communication problems; same as LOG
                                                                 * for server reporting, but never sent to
                                                                 * client. */
-#define INFO           17                      /* Informative messages that are always sent
-                                                                * to client;  is not affected by
-                                                                * client_min_messages */
+#define INFO           17                      /* Messages specifically requested by user
+                                                                * (eg VACUUM VERBOSE output); always sent to
+                                                                * client regardless of client_min_messages,
+                                                                * but by default not sent to server log. */
 #define NOTICE         18                      /* Helpful messages to users about query
-                                                                * operation;  sent to client and server log
+                                                                * operation; sent to client and server log
                                                                 * by default. */
 #define WARNING                19                      /* Warnings.  NOTICE is for expected messages
                                                                 * like implicit sequence creation by SERIAL.