Fix various infelicities that have snuck into usage of errdetail() and
authorTom Lane
Mon, 24 Mar 2008 19:12:49 +0000 (19:12 +0000)
committerTom Lane
Mon, 24 Mar 2008 19:12:49 +0000 (19:12 +0000)
friends.  Avoid double translation of some messages, ensure other messages
are exposed for translation (and make them follow the style guidelines),
avoid unsafe passing of an unpredictable message text as a format string.

src/backend/catalog/aclchk.c
src/backend/catalog/pg_shdepend.c
src/backend/commands/vacuumlazy.c
src/backend/utils/adt/xml.c

index 75737adac769c0ce5c5555ff00a7791c72b59153..1eea4baeb92daba1e20b70a5fa0a4839a1aa0e7d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.143 2008/01/01 19:45:48 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.144 2008/03/24 19:12:49 tgl Exp $
  *
  * NOTES
  *   See acl.h.
@@ -246,7 +246,7 @@ ExecuteGrantStmt(GrantStmt *stmt)
 {
    InternalGrant istmt;
    ListCell   *cell;
-   char       *errormsg;
+   const char *errormsg;
    AclMode     all_privileges;
 
    /*
@@ -294,31 +294,31 @@ ExecuteGrantStmt(GrantStmt *stmt)
             */
        case ACL_OBJECT_RELATION:
            all_privileges = ACL_ALL_RIGHTS_RELATION | ACL_ALL_RIGHTS_SEQUENCE;
-           errormsg = _("invalid privilege type %s for relation");
+           errormsg = gettext_noop("invalid privilege type %s for relation");
            break;
        case ACL_OBJECT_SEQUENCE:
            all_privileges = ACL_ALL_RIGHTS_SEQUENCE;
-           errormsg = _("invalid privilege type %s for sequence");
+           errormsg = gettext_noop("invalid privilege type %s for sequence");
            break;
        case ACL_OBJECT_DATABASE:
            all_privileges = ACL_ALL_RIGHTS_DATABASE;
-           errormsg = _("invalid privilege type %s for database");
+           errormsg = gettext_noop("invalid privilege type %s for database");
            break;
        case ACL_OBJECT_FUNCTION:
            all_privileges = ACL_ALL_RIGHTS_FUNCTION;
-           errormsg = _("invalid privilege type %s for function");
+           errormsg = gettext_noop("invalid privilege type %s for function");
            break;
        case ACL_OBJECT_LANGUAGE:
            all_privileges = ACL_ALL_RIGHTS_LANGUAGE;
-           errormsg = _("invalid privilege type %s for language");
+           errormsg = gettext_noop("invalid privilege type %s for language");
            break;
        case ACL_OBJECT_NAMESPACE:
            all_privileges = ACL_ALL_RIGHTS_NAMESPACE;
-           errormsg = _("invalid privilege type %s for schema");
+           errormsg = gettext_noop("invalid privilege type %s for schema");
            break;
        case ACL_OBJECT_TABLESPACE:
            all_privileges = ACL_ALL_RIGHTS_TABLESPACE;
-           errormsg = _("invalid privilege type %s for tablespace");
+           errormsg = gettext_noop("invalid privilege type %s for tablespace");
            break;
        default:
            /* keep compiler quiet */
@@ -351,8 +351,7 @@ ExecuteGrantStmt(GrantStmt *stmt)
            if (priv & ~((AclMode) all_privileges))
                ereport(ERROR,
                        (errcode(ERRCODE_INVALID_GRANT_OPERATION),
-                        errmsg(errormsg,
-                               privilege_to_string(priv))));
+                        errmsg(errormsg, privilege_to_string(priv))));
 
            istmt.privileges |= priv;
        }
index be37d628ae40d02062d77790f7aeaf99de1946b5..5e999f5816881d2448d689c0a933c45165f2e403 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_shdepend.c,v 1.23 2008/01/23 15:36:38 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_shdepend.c,v 1.24 2008/03/24 19:12:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -670,7 +670,7 @@ checkSharedDependencies(Oid classId, Oid objectId)
        ereport(LOG,
                (errmsg("there are objects dependent on %s",
                        getObjectDescription(&obj)),
-                errdetail(alldescs.data)));
+                errdetail("%s", alldescs.data)));
    }
 
    pfree(alldescs.data);
index d524e52b55522b66a5ba84e6438c3622e0723943..d96d2ba49e667c14fa57d008b19e87f566460520 100644 (file)
@@ -38,7 +38,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.104 2008/03/10 02:04:09 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.105 2008/03/24 19:12:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -212,10 +212,10 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt,
                (errmsg("relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space",
                        get_namespace_name(RelationGetNamespace(onerel)),
                        RelationGetRelationName(onerel)),
-       errhint((vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20 ?
-       /* Only suggest VACUUM FULL if 20% free */
-                "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"." :
-                "Consider increasing the configuration parameter \"max_fsm_pages\"."))));
+                /* Only suggest VACUUM FULL if > 20% free */
+                (vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20) ?
+                errhint("Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\".") :
+                errhint("Consider increasing the configuration parameter \"max_fsm_pages\".")));
 
    /* Update statistics in pg_class */
    vac_update_relstats(RelationGetRelid(onerel),
index 95b147b09f16b192ff60af38d1053d33752efa44..f0a668b292786c27c528ed0884130b6eeec2c18e 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.69 2008/03/01 02:46:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.70 2008/03/24 19:12:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1401,25 +1401,25 @@ xml_ereport_by_code(int level, int sqlcode,
    switch (code)
    {
        case XML_ERR_INVALID_CHAR:
-           det = "Invalid character value";
+           det = gettext_noop("Invalid character value.");
            break;
        case XML_ERR_SPACE_REQUIRED:
-           det = "Space required";
+           det = gettext_noop("Space required.");
            break;
        case XML_ERR_STANDALONE_VALUE:
-           det = "standalone accepts only 'yes' or 'no'";
+           det = gettext_noop("standalone accepts only 'yes' or 'no'.");
            break;
        case XML_ERR_VERSION_MISSING:
-           det = "Malformed declaration expecting version";
+           det = gettext_noop("Malformed declaration: missing version.");
            break;
        case XML_ERR_MISSING_ENCODING:
-           det = "Missing encoding in text declaration";
+           det = gettext_noop("Missing encoding in text declaration.");
            break;
        case XML_ERR_XMLDECL_NOT_FINISHED:
-           det = "Parsing XML declaration: '?>' expected";
+           det = gettext_noop("Parsing XML declaration: '?>' expected.");
            break;
        default:
-           det = "Unrecognized libxml error code: %d";
+           det = gettext_noop("Unrecognized libxml error code: %d.");
            break;
    }