Re: make tsearch use the database default locale

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: pgsql-hackers@postgresql.org
Date: 2025-10-15T20:43:58Z
Lists: pgsql-hackers

Attachments

On Tue, 2025-10-07 at 15:49 -0700, Jeff Davis wrote:
> This patch series allows tsearch to use the database default locale
> for
> parsing. If the database collation is libc, there's no change.

I committed a couple of the refactoring patches and rebased. v3
attached.

v3-0003 which eliminates the "wstr" logic and uses only the "pgwstr". I
was a bit confused why both were needed, as the purpose of pg_wchar is
to abstract away the problems with wchar_t. Perhaps it's historical, or
perhaps I missed something.

Regarding the risk of behavior changes: this affects parsing the
values, but not the interpretation of values after parsing, so the risk
of index inconsistencies seems low. There's risk that a document parsed
in the old version would be parsed differently in the new version,
though. Overall, it seems comparable to the risk of fb1a18810f.

Regards,
	Jeff Davis

Commits

  1. Make char2wchar() static.

  2. Remove obsolete global database_ctype_is_c.

  3. tsearch: use database default collation for parsing.

  4. Add pg_database_locale() to retrieve database default locale.

  5. Add pg_iswxdigit(), useful for tsearch.

  6. Add pg_iswalpha() and related functions.

  7. pg_regc_locale.c: rename some static functions.