Re: quoteOneName() inconsistency with quote_all_identifiers — replacement API proposed
Chao Li <li.evan.chao@gmail.com>
From: Chao Li <li.evan.chao@gmail.com>
To: Álvaro Herrera <alvherre@kurilemu.de>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-11-21T10:03:41Z
Lists: pgsql-hackers
Attachments
- v4-0004-Use-appendStringInfoIdentifier-in-more-places.patch (application/octet-stream) patch v4-0004
- v4-0001-Add-appendStringInfoIdentifier-to-avoid-intermedi.patch (application/octet-stream) patch v4-0001
- v4-0003-Remove-quoteOneName-and-related-buffer-sizing-mac.patch (application/octet-stream) patch v4-0003
- v4-0002-Use-appendStringInfoIdentifier-throughout-ri_trig.patch (application/octet-stream) patch v4-0002
Fixed a compile warning in v4.
Best regards,
Chao Li (Evan)
---------------------
HighGo Software Co., Ltd.
https://www.highgo.com/
On Fri, Nov 21, 2025 at 1:52 PM Chao Li <li.evan.chao@gmail.com> wrote:
>
> On Thu, Nov 20, 2025 at 8:28 PM Álvaro Herrera <alvherre@kurilemu.de>
> wrote:
>
>> Hi,
>>
>> > - appendStringInfo(&buffer, _("text search configuration
>> %s"),
>> > - quote_qualified_identifier(nspname,
>> > -
>> NameStr(cfgForm->cfgname)));
>> > + appendStringInfoQualifiedIdentifier(&buffer,
>> > + _("text search
>> configuration "),
>> > + nspname,
>> NameStr(cfgForm->cfgname), NULL);
>> > ReleaseSysCache(tup);
>> > break;
>> > }
>>
>> This doesn't work from a i18n point of view. In the original
>> formulation, the translator is free to place the %s wherever it suits
>> the language. In the new one there's no such freedom: the name will be
>> appended at the end. Some existing translations:
>>
>> ko.po:msgid "text search configuration %s"
>> ko.po-msgstr "%s 전문 검색 구성"
>>
>> tr.po:msgid "text search configuration %s"
>> tr.po-msgstr "%s metin arama yapılandırması"
>>
>
> Thanks for the feedback. I reverted that piece of change in v3.
>
> Best regards,
> Chao Li (Evan)
> ---------------------
> HighGo Software Co., Ltd.
> https://www.highgo.com/
>