Re: Adding the extension name to EData / log_line_prefix - Mailing list pgsql-hackers

From Chapman Flack
Subject Re: Adding the extension name to EData / log_line_prefix
Date
Msg-id 6644E8D5.6050709@acm.org
Whole thread Raw
In response to Re: Adding the extension name to EData / log_line_prefix  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Adding the extension name to EData / log_line_prefix
List pgsql-hackers
On 05/15/24 11:50, Tom Lane wrote:
> Hmm, cute idea, but it'd only help for extensions that are
> NLS-enabled.  Which I bet is a tiny fraction of the population.
> So far as I can find, we don't even document how to set up
> TEXTDOMAIN for an extension --- you have to cargo-cult the

But I'd bet, within the fraction of the population that does use it,
it is already a short string that looks a whole lot like the name
of the extension. So maybe enhancing the documentation and making it
easy to set up would achieve much of the objective here.

Could PGXS be made to supply the extension name as TEXTDOMAIN when
building code that does not otherwise define it, and would that have
any ill effect on the otherwise not-NLS-enabled code? Would the worst-
case effect be a failed search for a nonexistent .mo file, followed by
output of the untranslated message as before?

At first glance, it appears elog will apply PG_TEXTDOMAIN("postgres")
in an extension that does not otherwise define TEXTDOMAIN. But I assume
the usual effect of that is already a failed lookup followed by output of
the untranslated message, except in the case of the out-of-core extension
using a message matching a PG_TEXTDOMAIN("postgres") translation.

If that case is considered unexpected, or actively discouraged, perhaps
defining TEXTDOMAIN in an otherwise not-NLS-enabled extension could be
relatively painless.

Regards,
-Chap



pgsql-hackers by date:

Previous
From: Jacob Burroughs
Date:
Subject: Re: libpq compression (part 3)
Next
From: Robert Haas
Date:
Subject: Re: Fix log_line_prefix to display the transaction id (%x) for statements not in a transaction block