On Wed, Sep 21, 2022 at 8:17 PM Julien Rouhaud <rjuju...@gmail.com> wrote: > > Hi, > > On Wed, Sep 21, 2022 at 07:45:01PM +0800, Junwang Zhao wrote: > > when a error occurs when creating proc, it should point out the > > specific proc kind instead of just printing "function". > > You should have kept the original thread in copy (1), or at least mention it.
Yeah, thanks for pointing that out, will do that next time. > > > diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c > > index a9fe45e347..58af4b48ce 100644 > > --- a/src/backend/catalog/pg_proc.c > > +++ b/src/backend/catalog/pg_proc.c > > @@ -373,7 +373,11 @@ ProcedureCreate(const char *procedureName, > > if (!replace) > > ereport(ERROR, > > > > (errcode(ERRCODE_DUPLICATE_FUNCTION), > > - errmsg("function \"%s\" > > already exists with same argument types", > > + errmsg("%s \"%s\" already > > exists with same argument types", > > + > > (oldproc->prokind == PROKIND_AGGREGATE ? "aggregate function" : > > + > > oldproc->prokind == PROKIND_PROCEDURE ? "procedure" : > > + > > oldproc->prokind == PROKIND_WINDOW ? "window function" : > > + "function"), > > procedureName))); > > if (!pg_proc_ownercheck(oldproc->oid, proowner)) > > aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_FUNCTION, > > You can't put part of the message in parameter, as the resulting string isn't > translatable. You should either use "routine" as a generic term or provide 3 > different full messages. I noticed that there are some translations under the backend/po directory, can we just change msgid "function \"%s\" already exists with same argument types" to msgid "%s \"%s\" already exists with same argument types" ? > > [1] > https://www.postgresql.org/message-id/29ea5666.6ce8.1835f4b4992.coremail.qtds_...@126.com -- Regards Junwang Zhao