Yes, the *_internal function can be reused. This is my modified patch.
Please take a look.
Zeng Wenjing
------------------ Original ------------------
From: "Andres Freund"<andres@anarazel.de>;
Date: Wed, May 23, 2018 05:11 AM
To: "158306855"<anderson2013@qq.com>;
Cc: "Tom Lane"<tgl@sss.pgh.pa.us>; "pgsql-bugs"<pgsql-bugs@lists.postgresql.org>;
Subject: Re: [BUG] Re-entering malloc problem when use --enable-nlsbuildpostgresql
On 2018-05-21 10:49:53 +0800, 158306855 wrote:
> > It'd be fairly unproblematic to write an untranslated message out. There
> > we can make sure to either only use plain syscalls or use memory from
> > the preallocated context. I think it'd be ok to not to translate in
> > that situation.
>
>
> I wrote a patch to improve this problem.
>
> +extern int errmsg_no_translateit(const char *fmt,...) pg_attribute_printf(1, 2);
> +extern int errdetail_no_translateit(const char *fmt,...) pg_attribute_printf(1, 2);
> +extern int errhint_no_translateit(const char *fmt,...) pg_attribute_printf(1, 2);
> +
> /*
> * errcontext() is typically called in error context callback functions, not
> * within an ereport() invocation. The callback function can be in a different
Can't we just reuse errmsg_internal etc?
Greetings,
Andres Freund