On 07.07.26 13:51, Álvaro Herrera wrote:
On 2026-Jul-03, Kyotaro Horiguchi wrote:

diff --git a/src/backend/catalog/pg_depend.c b/src/backend/catalog/pg_depend.c
index 9a7a401aced..0d28d34412d 100644
--- a/src/backend/catalog/pg_depend.c
+++ b/src/backend/catalog/pg_depend.c
@@ -810,7 +810,7 @@ dependencyLockAndCheckObject(Oid classId, Oid objectId)
                        ereport(ERROR,
                                        (errcode(ERRCODE_UNDEFINED_OBJECT),
                                         errmsg("referenced %s was concurrently 
dropped",
-                                                       
get_object_class_descr(classId))));
+                                                       
_(get_object_class_descr(classId)))));

I agree with the patch idea in general, but I'm not sure that this
string is really adequate.  For instance, with this string we cannot
make "referenced" and "dropped" in the right gender declension depending
on the object type, and that will make the message look weird in some
languages -- specifically in Spanish but I'm guessing it can be a
problem in others as well.
      "rol referenciado fue borrado concurrentemente"
    "tabla referenciada fue borrada concurrentemente"
and so on.
(Most object types are feminine, but at least "role" and "operator" are
masculine.)

I propose we make this
   "referenced object of type \"%s\" was concurrently dropped"

so that the declension of "referenced" and "dropped" refer to the gender
of the word "object".  We'd no longer have a problem there:
   "el objeto referenciado de tipo "tabla" fue borrado concurrentemente"
This reads a bit odd, but we no longer have a grammatical gender problem
there.

(We could leave out the quote marks, perhaps.)

The class_descr is meant for internal messages only, for the reasons you describe. The fact that there is now a non-internal message that uses it is a bug and that should be fixed at that caller.

When I was working on generating the ObjectProperty tables automatically, I was working toward getting rid of class_descr altogether, because it's mostly not useful. (For internal error messages, you might as well just print the actual catalog name.) I don't think we should be working toward making this facility more attractive now.



Reply via email to