On Wed, Jun 1, 2022 at 7:09 PM Thomas Munro <thomas.mu...@gmail.com> wrote: > On Wed, Jun 1, 2022 at 6:15 PM 荒井元成 <n2...@ndensan.co.jp> wrote: > > D209007=# select char_length(U&'\+0066FE' || U&'\+0E0103') ; > > char_length > > ------------- > > 2 > > (1 行) > > > > I expect length 1. > > No opinion here, but I did happen to see Noriyoshi Shinoda's slides > about this topic a little while ago, comparing different databases: > > https://www.slideshare.net/noriyoshishinoda/postgresql-unconference-29-unicode-ivs > > It's the same with Latin combining characters... we count the > individual codepoints of combining sequences: > > postgres=# select 'e' || U&'\0301', length('e' || U&'\0301'); > ?column? | length > ----------+-------- > é | 2 > (1 row)
Looking around a bit, it might be interesting to check if the icu_character_boundaries() function in Daniel Vérité's icu_ext treats IVSs as single grapheme clusters.