Обсуждение: [PATCH] libpq: Wrap out-of-memory error messages with libpq_gettext()
Hi,
The recent patch for passwordFromFile() error handling highlighted that many other out-of-memory error messages in libpq still aren't wrapped with libpq_gettext().
Attached is a patch that systematically wraps the remaining bare "out of memory" strings across libpq with libpq_gettext() to ensure consistent translation support. This covers:
- Authentication modules (fe-auth.c, fe-auth-scram.c, fe-auth-oauth.c)
- Connection handling (fe-connect.c, fe-cancel.c)
- Protocol and secure communication (fe-protocol3.c, fe-secure-*.c)
- Other modules (fe-exec.c, fe-lobj.c, fe-gssapi-common.c)
The recent patch for passwordFromFile() error handling highlighted that many other out-of-memory error messages in libpq still aren't wrapped with libpq_gettext().
Attached is a patch that systematically wraps the remaining bare "out of memory" strings across libpq with libpq_gettext() to ensure consistent translation support. This covers:
- Authentication modules (fe-auth.c, fe-auth-scram.c, fe-auth-oauth.c)
- Connection handling (fe-connect.c, fe-cancel.c)
- Protocol and secure communication (fe-protocol3.c, fe-secure-*.c)
- Other modules (fe-exec.c, fe-lobj.c, fe-gssapi-common.c)
Cheers,
Joshua
Вложения
On Sun, Nov 9, 2025 at 5:21 AM Joshua Shanks <jjshanks@gmail.com> wrote:
>
> Hi,
>
> The recent patch for passwordFromFile() error handling highlighted that many other out-of-memory error messages in
libpqstill aren't wrapped with libpq_gettext().
>
> Attached is a patch that systematically wraps the remaining bare "out of memory" strings across libpq with
libpq_gettext()to ensure consistent translation support. This covers:
> - Authentication modules (fe-auth.c, fe-auth-scram.c, fe-auth-oauth.c)
> - Connection handling (fe-connect.c, fe-cancel.c)
> - Protocol and secure communication (fe-protocol3.c, fe-secure-*.c)
> - Other modules (fe-exec.c, fe-lobj.c, fe-gssapi-common.c)
- libpq_append_conn_error(conn, "out of memory");
+ libpq_append_conn_error(conn, libpq_gettext("out of memory"));
Seems libpq_gettext() doesn't need to be called here,
since libpq_append_conn_error() already does that internally. No?
Regards,
--
Fujii Masao
You're absolutely right, thank you for catching that! I was double-wrapping the translation.
libpq_append_conn_error() already calls libpq_gettext() internally (fe-misc.c:1420), so these changes are unnecessary. I'm withdrawing this patch.
libpq_append_conn_error() already calls libpq_gettext() internally (fe-misc.c:1420), so these changes are unnecessary. I'm withdrawing this patch.
On Sun, Nov 9, 2025 at 11:04 PM Fujii Masao <masao.fujii@gmail.com> wrote:
On Sun, Nov 9, 2025 at 5:21 AM Joshua Shanks <jjshanks@gmail.com> wrote:
>
> Hi,
>
> The recent patch for passwordFromFile() error handling highlighted that many other out-of-memory error messages in libpq still aren't wrapped with libpq_gettext().
>
> Attached is a patch that systematically wraps the remaining bare "out of memory" strings across libpq with libpq_gettext() to ensure consistent translation support. This covers:
> - Authentication modules (fe-auth.c, fe-auth-scram.c, fe-auth-oauth.c)
> - Connection handling (fe-connect.c, fe-cancel.c)
> - Protocol and secure communication (fe-protocol3.c, fe-secure-*.c)
> - Other modules (fe-exec.c, fe-lobj.c, fe-gssapi-common.c)
- libpq_append_conn_error(conn, "out of memory");
+ libpq_append_conn_error(conn, libpq_gettext("out of memory"));
Seems libpq_gettext() doesn't need to be called here,
since libpq_append_conn_error() already does that internally. No?
Regards,
--
Fujii Masao
On Mon, Nov 10, 2025 at 05:21:00PM -0800, Joshua Shanks wrote: > You're absolutely right, thank you for catching that! I was > double-wrapping the translation. > > libpq_append_conn_error() already calls libpq_gettext() > internally (fe-misc.c:1420), so these changes are unnecessary. I'm > withdrawing this patch. Following a bit here, as I'm sure that this thread comes from 861af9261035. The reason behind the additions of the two libpq_gettext() in passwordFromFile(), as done in 861af9261035, is just to provide a safety net in case we introduce a new caller of passwordFromFile() that forgets to apply gettext(), with for example a new message printed to stderr. Not mandatory for these two new cases as libpq_append_conn_error() is called shortly after grabbing the error message grabbed for the current caller of passwordFromFile(), still better to have in the long-run, IMO. That's also the style we've adopted for the error messages related to the protocol or fe-exec.c. -- Michael