Fix off-by-one with NFC recomposition for Hangul U+11A7 (TBASE)
Michael Paquier <michael@paquier.xyz>
Fix off-by-one with NFC recomposition for Hangul U+11A7 (TBASE) The NFC recomposition incorrectly included TBASE as a valid T syllable, which is incorrect based on the Unicode specification (TBASE is one below the start of the range, range beginning at U+11A8). This would cause the TBASE to be silently swallowed in the normalization, leading to an incorrect result. A couple of regression tests are added to check more patterns with Hangul recomposition and decomposition, on top of a test to check the problem with TBASE. Diego has submitted the code fix, and I have written the tests. Author: Diego Frias <mail@dzfrias.dev> Co-authored-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/B92ED640-7D4A-4505-B09F-3548F58CBB16@dzfrias.dev Backpatch-through: 14
Files
| Path | Change | +/− |
|---|---|---|
| src/common/unicode_norm.c | modified | +1 −1 |
| src/test/regress/expected/unicode.out | modified | +78 −0 |
| src/test/regress/sql/unicode.sql | modified | +20 −0 |
Discussion
- [PATCH] Fix recognizing 0x11A7 as a Hangul T syllable in Unicode normalization 4 messages · 2026-06-01 → 2026-06-04