postgresql/src/backend
Jeff Davis d3d0983169 Support PG_UNICODE_FAST locale in the builtin collation provider.
The PG_UNICODE_FAST locale uses code point sort order (fast,
memcmp-based) combined with Unicode character semantics. The character
semantics are based on Unicode full case mapping.

Full case mapping can map a single codepoint to multiple codepoints,
such as "ß" uppercasing to "SS". Additionally, it handles
context-sensitive mappings like the "final sigma", and it uses
titlecase mappings such as "Dž" when titlecasing (rather than plain
uppercase mappings).

Importantly, the uppercasing of "ß" as "SS" is specifically mentioned
by the SQL standard. In Postgres, UCS_BASIC uses plain ASCII semantics
for case mapping and pattern matching, so if we changed it to use the
PG_UNICODE_FAST locale, it would offer better compliance with the
standard. For now, though, do not change the behavior of UCS_BASIC.

Discussion: https://postgr.es/m/ddfd67928818f138f51635712529bc5e1d25e4e7.camel@j-davis.com
Discussion: https://postgr.es/m/27bb0e52-801d-4f73-a0a4-02cfdd4a9ada@eisentraut.org
Reviewed-by: Peter Eisentraut, Daniel Verite
2025-01-17 15:56:30 -08:00
..
access Revert recent changes related to handling of 2PC files at recovery 2025-01-17 13:27:39 +09:00
archive Update copyright for 2025 2025-01-01 11:21:55 -05:00
backup Update copyright for 2025 2025-01-01 11:21:55 -05:00
bootstrap Update copyright for 2025 2025-01-01 11:21:55 -05:00
catalog Seek zone abbreviations in the IANA data before timezone_abbreviations. 2025-01-16 14:11:19 -05:00
commands Seek zone abbreviations in the IANA data before timezone_abbreviations. 2025-01-16 14:11:19 -05:00
executor Add OLD/NEW support to RETURNING in DML queries. 2025-01-16 14:57:35 +00:00
foreign Update copyright for 2025 2025-01-01 11:21:55 -05:00
jit Add OLD/NEW support to RETURNING in DML queries. 2025-01-16 14:57:35 +00:00
lib Update copyright for 2025 2025-01-01 11:21:55 -05:00
libpq postgres_fdw: SCRAM authentication pass-through 2025-01-15 17:58:05 +01:00
main Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodes Add OLD/NEW support to RETURNING in DML queries. 2025-01-16 14:57:35 +00:00
optimizer Fix setrefs.c's failure to do expression processing on prune steps. 2025-01-16 20:40:07 -05:00
parser Fix parsing of qualified relation names in RETURNING. 2025-01-17 10:35:07 +00:00
partitioning Update copyright for 2025 2025-01-01 11:21:55 -05:00
po Update copyright for 2025 2025-01-01 11:21:55 -05:00
port Update copyright for 2025 2025-01-01 11:21:55 -05:00
postmaster postmaster: Rename some shutdown related PMState phase names 2025-01-10 11:43:00 -05:00
regex Support PG_UNICODE_FAST locale in the builtin collation provider. 2025-01-17 15:56:30 -08:00
replication postmaster: Rename some shutdown related PMState phase names 2025-01-10 11:43:00 -05:00
rewrite Add OLD/NEW support to RETURNING in DML queries. 2025-01-16 14:57:35 +00:00
snowball Update copyright for 2025 2025-01-01 11:21:55 -05:00
statistics Consistently spell "leakproof" without a hyphen. 2025-01-14 13:50:54 +00:00
storage Make pg_stat_io count IOs as bytes instead of blocks for some operations 2025-01-14 12:14:29 +09:00
tcop Use PqMsg_* macros in postgres.c. 2025-01-07 15:34:19 -06:00
tsearch Update copyright for 2025 2025-01-01 11:21:55 -05:00
utils Support PG_UNICODE_FAST locale in the builtin collation provider. 2025-01-17 15:56:30 -08:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Blind attempt to fix LLVM dependency in the backend 2022-09-15 10:53:48 +07:00
Makefile Update copyright for 2025 2025-01-01 11:21:55 -05:00
meson.build Update copyright for 2025 2025-01-01 11:21:55 -05:00
nls.mk jsonpath scanner: reentrant scanner 2024-12-24 23:42:41 +01:00