[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)
Cheers,
Joshua
Attachments:
0001-libpq-Wrap-out-of-memory-error-messages-with-libpq_g.patchapplication/octet-stream; name=0001-libpq-Wrap-out-of-memory-error-messages-with-libpq_g.patchDownload+75-76
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
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.
On Sun, Nov 9, 2025 at 11:04 PM Fujii Masao <masao.fujii@gmail.com> wrote:
Show quoted text
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