| From: | Jeff Davis <jdavis(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Generate unicode_limits.h. |
| Date: | 2026-07-17 23:43:12 |
| Message-ID: | E1wksD2-000h1a-0N@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Generate unicode_limits.h.
To ensure we do not overflow a size_t while case mapping on a 32-bit
platform, we need to know the maximum amount a UTF8 string can expand.
Calculate that maximum while generating unicode tables as a part of
the update-unicode target, and output into a new header
unicode_limits.h. Minor refactoring along the way.
Add a StaticAssertDecl to check that a MaxAllocSize text value
expanded by that amount would still have a length that fits in
size_t. (We couldn't actually create a new text value out of that, but
we still need to avoid overflow.)
Reported-by: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Discussion: https://postgr.es/m/3213927.1783950167@sss.pgh.pa.us
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/2cf212db5286baa7d7e80449300fe472d8c4ba9f
Modified Files
--------------
src/backend/utils/adt/pg_locale_builtin.c | 11 ++
src/common/unicode/Makefile | 6 +-
src/common/unicode/generate-unicode_case_table.pl | 194 +++++++++++++++-------
src/common/unicode/meson.build | 2 +-
src/common/unicode_case.c | 12 +-
src/include/common/unicode_case_table.h | 9 +-
src/include/common/unicode_limits.h | 39 +++++
7 files changed, 202 insertions(+), 71 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Kapila | 2026-07-18 02:33:55 | pgsql: Revert "Reject concurrent sequence refreshes". |
| Previous Message | Tom Lane | 2026-07-17 22:08:32 | pgsql: Fix yet another portability problem in new NLS test. |