]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Change some errdetail() to errdetail_internal()
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 28 Sep 2022 15:14:53 +0000 (17:14 +0200)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 28 Sep 2022 15:14:53 +0000 (17:14 +0200)
This prevents marking the argument string for translation for gettext,
and it also prevents the given string (which is already translated) from
being translated at runtime.

Also, mark the strings used as arguments to check_rolespec_name for
translation.

Backpatch all the way back as appropriate.  None of this is caught by
any tests (necessarily so), so I verified it manually.

src/backend/catalog/dependency.c
src/backend/commands/user.c
src/backend/utils/adt/acl.c

index d138b6a0d274a1c4a1dd8f54656cefc7bc247433..f8510a14832772c429caf4c015c4601719b2451a 100644 (file)
@@ -999,14 +999,14 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
                                        (errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
                                         errmsg("cannot drop %s because other objects depend on it",
                                                        getObjectDescription(origObject)),
-                                        errdetail("%s", clientdetail.data),
+                                        errdetail_internal("%s", clientdetail.data),
                                         errdetail_log("%s", logdetail.data),
                                         errhint("Use DROP ... CASCADE to drop the dependent objects too.")));
                else
                        ereport(ERROR,
                                        (errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
                                         errmsg("cannot drop desired object(s) because other objects depend on them"),
-                                        errdetail("%s", clientdetail.data),
+                                        errdetail_internal("%s", clientdetail.data),
                                         errdetail_log("%s", logdetail.data),
                                         errhint("Use DROP ... CASCADE to drop the dependent objects too.")));
        }
@@ -1018,7 +1018,7 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
                                                           "drop cascades to %d other objects",
                                                           numReportedClient + numNotReportedClient,
                                                           numReportedClient + numNotReportedClient),
-                                errdetail("%s", clientdetail.data),
+                                errdetail_internal("%s", clientdetail.data),
                                 errdetail_log("%s", logdetail.data)));
        }
        else if (numReportedClient == 1)
index c6b3bce85d90de64786ab1c7d0a2ce350121af39..071bae2c5d9833de95d69554be66c0c0b8f5e69c 100644 (file)
@@ -552,7 +552,7 @@ AlterRole(AlterRoleStmt *stmt)
        Oid                     roleid;
 
        check_rolespec_name(stmt->role,
-                                               "Cannot alter reserved roles.");
+                                               _("Cannot alter reserved roles."));
 
        /* Extract options from the statement node tree */
        foreach(option, stmt->options)
@@ -906,7 +906,7 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
        if (stmt->role)
        {
                check_rolespec_name(stmt->role,
-                                                       "Cannot alter reserved roles.");
+                                                       _("Cannot alter reserved roles."));
 
                roletuple = get_rolespec_tuple(stmt->role);
                roleid = HeapTupleGetOid(roletuple);
index 3bd7f84db4963e8430a4f7011e86ec647ae6ece1..6c91edff82d08e57b20b1462d0b5bb16713f2fad 100644 (file)
@@ -5323,7 +5323,7 @@ get_rolespec_name(const RoleSpec *role)
 
 /*
  * Given a RoleSpec, throw an error if the name is reserved, using detail_msg,
- * if provided.
+ * if provided (which must be already translated).
  *
  * If node is NULL, no error is thrown.  If detail_msg is NULL then no detail
  * message is provided.
@@ -5344,7 +5344,7 @@ check_rolespec_name(const RoleSpec *role, const char *detail_msg)
                                        (errcode(ERRCODE_RESERVED_NAME),
                                         errmsg("role name \"%s\" is reserved",
                                                        role->rolename),
-                                        errdetail("%s", detail_msg)));
+                                        errdetail_internal("%s", detail_msg)));
                else
                        ereport(ERROR,
                                        (errcode(ERRCODE_RESERVED_NAME),