On Thu, Oct 9, 2025 at 2:26 PM Fujii Masao <[email protected]> wrote: > > Please note that since you're using already translated strings as > > arguments, you must use errmsg_internal() and errhint_internal(), to > > avoid doubly-translating these messages. > > I've updated the patch to use errmsg_internal() and errhint_internal(). > However, for GUCs, GUC_check_errdetail() and GUC_check_errhint() are > still used - and since they also translate their input, we might need > something like GUC_check_errdetail_internal() and > GUC_check_errhint_internal() to avoid double translation. Thought? > I haven't added those functions in the attached patch yet.
OK, I've implemented this and attached two patches. 0001 fixes the issue we've been discussing. It's mostly the same as the previous version I posted. 0002 adds GUC_check_errmsg_internal(), GUC_check_errdetail_internal(), and GUC_check_errhint_internal(). These work like their counterparts (e.g., GUC_check_errmsg()) but skip translation. It also updates the check hook for primary_slot_name to use these new functions when handling already-translated error messages. Regards, -- Fujii Masao
v5-0002-Avoid-double-translation-of-messages-for-invalid-.patch
Description: Binary data
v5-0001-Make-invalid-primary_slot_name-follow-standard-GU.patch
Description: Binary data
