Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nZ7aw-0007BY-VZ for pgsql-admin@arkaria.postgresql.org; Tue, 29 Mar 2022 08:52:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nZ7av-0001gb-SB for pgsql-admin@arkaria.postgresql.org; Tue, 29 Mar 2022 08:52:53 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nZ7av-0001gR-4E for pgsql-admin@lists.postgresql.org; Tue, 29 Mar 2022 08:52:53 +0000 Received: from inet-gw.ndensan.co.jp ([192.47.64.84]) by makus.postgresql.org with smtp (Exim 4.92) (envelope-from ) id 1nZ7aq-0002zh-IN for pgsql-admin@lists.postgresql.org; Tue, 29 Mar 2022 08:52:51 +0000 From: =?UTF-8?B?6I2S5LqV5YWD5oiQ?= To: "'Graham Myers'" , "'David G. Johnston'" Cc: References: <00e201d8431c$cb38eb40$61aac1c0$@ndensan.co.jp> <00f601d84326$5367cf00$fa376d00$@ndensan.co.jp> <011201d84345$f704a1f0$e50de5d0$@ndensan.co.jp> In-Reply-To: Subject: RE: About Unicode IVS Date: Tue, 29 Mar 2022 17:52:45 +0900 Message-ID: <012001d8434a$5bf28150$13d783f0$@ndensan.co.jp> MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0121_01D84395.CBDD0F80" X-Mailer: Microsoft Outlook 16.0 thread-index: AQHjbJJi0v014goMGofTVeHbofwGGgJNxTOuAs0qQHoBhUx+7gJWKTq9AekeJhOsaL8q0A== Content-Language: ja List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multipart message in MIME format. ------=_NextPart_000_0121_01D84395.CBDD0F80 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0122_01D84395.CBDD3690" ------=_NextPart_001_0122_01D84395.CBDD3690 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Where should I make a request if I want Postgresql to handle it? Is this mailing list all right? =20 Moto. =20 From: Graham Myers =20 Sent: Tuesday, March 29, 2022 5:26 PM To: =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 ; David G. = Johnston Cc: pgsql-admin@lists.postgresql.org Subject: RE: About Unicode IVS =20 Thanks you for the explanation, Unicode always blows my mind = =F0=9F=98=8A The problems is that postgres is counting code points = which in your example is two. =20 =09 Graham Myers=E2=80=8B =20 From: =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 >=20 Sent: 29 March 2022 09:21 To: 'Graham Myers' >; 'David G. Johnston' = > Cc: pgsql-admin@lists.postgresql.org = =20 Subject: RE: About Unicode IVS =20 thank you for your reply. =20 This is because two characters display one character. This includes Unicode Variant Selectors and Combining Characters. =20 Moto. =20 From: Graham Myers >=20 Sent: Tuesday, March 29, 2022 4:46 PM To: =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 >; David G. Johnston = > Cc: pgsql-admin@lists.postgresql.org = =20 Subject: RE: About Unicode IVS =20 Why do you expect the concatenation of two characters to return a length = of one? =20 =20 =09 Graham Myers=E2=80=8B =20 From: =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 >=20 Sent: 29 March 2022 05:35 To: 'David G. Johnston' > Cc: pgsql-admin@lists.postgresql.org = =20 Subject: RE: About Unicode IVS =20 =20 thank you for your reply. It will be 2 characters. =20 select char_length(U&'\+008FBA' || U&'\+0E0102'); char_length ------------- 2 (1 =E8=A1=8C) =20 select length('=E8=BE=BA=F3=A0=84=82'); length -------- 2 (1 =E8=A1=8C) =20 select char_length('=E8=BE=BA=F3=A0=84=82'); char_length ------------- 2 (1 =E8=A1=8C) =20 $ psql -l = =E3=83=87=E3=83=BC=E3=82=BF=E3=83=99=E3=83=BC=E3=82=B9=E4=B8=80=E8=A6=A7 =E5=90=8D=E5=89=8D | =E6=89=80=E6=9C=89=E8=80=85 | = =E3=82=A8=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=87=E3=82=A3=E3=83=B3=E3=82=B0 = | =E7=85=A7=E5=90=88=E9=A0=86=E5=BA=8F | = Ctype(=E5=A4=89=E6=8F=9B=E6=BC=94=E7=AE=97=E5=AD=90) | = =E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9=E6=A8=A9=E9=99=90 -----------+---------+------------------+----------+-------------------+-= -------------------- D209007 | D209007 | UTF8 | C | C | postgres | D209007 | UTF8 | C | C | template0 | D209007 | UTF8 | C | C | = =3Dc/D209007 + | | | | | = D209007=3DCTc/D209007 template1 | D209007 | UTF8 | C | C | = =3Dc/D209007 + | | | | | = D209007=3DCTc/D209007 (4 =E8=A1=8C) =20 =20 $ cat pgdata/PG_VERSION 13 =20 Moto. =20 From: David G. Johnston >=20 Sent: Tuesday, March 29, 2022 12:38 PM To: =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 > Cc: pgsql-admin@lists.postgresql.org = =20 Subject: Re: About Unicode IVS =20 On Monday, March 28, 2022, =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 = > wrote: Hi, =20 In the Length () function, it will be 2 characters where you want it to = be 1 character. Is it possible to respond by changing the settings such as changing the = collation setting like SQL Server? Also, if you understand how to deal with it (eg, create your own = function), it would be helpful if you could provide as much information = as you can. =20 =20 Try char_length(text) instead. =20 David J. =20 ------=_NextPart_001_0122_01D84395.CBDD3690 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Where should I make a request if = I want Postgresql to handle it?

Is this mailing list all = right?

 

Moto.

 

From:<= /b> Graham = Myers <gmyers@retailexpress.com>
Sent: Tuesday, March = 29, 2022 5:26 PM
To:
=E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 = <n2029@ndensan.co.jp>; David G. Johnston = <david.g.johnston@gmail.com>
Cc: = pgsql-admin@lists.postgresql.org
Subject: RE: About Unicode = IVS

 

Thanks you = for the explanation, Unicode always blows my mind 😊  The = problems is that postgres is counting code points which in your example = is two.

 =

G= raham Myers=E2= =80=8B<= o:p>

 

From:<= /b> = =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90= <n2029@ndensan.co.jp> =
Sent: 29 March 2022 09:21
To: 'Graham Myers' <gmyers@retailexpress.com>= ; 'David G. Johnston' <david.g.johnston@gmail.com= >
Cc: pgsql-admin@lists.postgr= esql.org
Subject: RE: About Unicode IVS

 

thank you for your = reply.

 

This is because two characters = display one character.

This includes Unicode Variant = Selectors and Combining Characters.

 

Moto.

 

From:<= /b> Graham = Myers <gmyers@retailexpress.com>=
Sent: Tuesday, March 29, 2022 4:46 PM
To: =
=E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 <n2029@ndensan.co.jp>; David = G. Johnston <david.g.johnston@gmail.com= >
Cc: pgsql-admin@lists.postgr= esql.org
Subject: RE: About Unicode IVS

 

Why do you = expect the concatenation of two characters to return a length of = one? 

 =

G= raham Myers=E2= =80=8B

 

From:<= /b> = =E8=8D=92=E4=BA=95=E5=85=83=E6=88=90= <n2029@ndensan.co.jp> =
Sent: 29 March 2022 05:35
To: 'David G. Johnston' = <david.g.johnston@gmail.com= >
Cc: pgsql-admin@lists.postgr= esql.org
Subject: RE: About Unicode IVS

 

 

thank you for your = reply.

It will be 2 = characters.

 

select char_length(U&'\+008FBA' = || U&'\+0E0102');

char_length

-------------

        &= nbsp;  2

(1 = =E8=A1=8C)

 

select length('=E8=BE=BA󠄂');

length

--------

      = 2

(1 = =E8=A1=8C)

 

select char_length('=E8=BE=BA󠄂');

char_length

-------------

        &= nbsp;  2

(1 = =E8=A1=8C)

 

$ psql -l

        &= nbsp;           &n= bsp;           &nb= sp;     =E3=83=87=E3=83=BC=E3=82=BF=E3=83=99=E3=83=BC=E3=82= =B9=E4=B8=80=E8=A6=A7

   =E5=90=8D=E5=89=8D    | =E6=89=80=E6=9C=89=E8=80=85  | =E3=82=A8=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=87=E3=82= =A3=E3=83=B3=E3=82=B0 = | =E7=85=A7=E5=90=88=E9=A0=86=E5=BA=8F | Ctype(=E5=A4=89=E6=8F=9B=E6=BC=94=E7=AE=97=E5=AD=90) |    = =E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9=E6=A8=A9=E9=99= =90

-----------+---------+------------------+--------= --+-------------------+---------------------

D209007   | D209007 | = UTF8           &nb= sp; | C        | = C            =      |

postgres  | D209007 | = UTF8           &nb= sp; | C        | = C            =      |

template0 | D209007 | = UTF8           &nb= sp; | C        | = C            =      | = =3Dc/D209007         = +

        &= nbsp;  |         = |            =       = |          = |            =        | D209007=3DCTc/D209007

template1 | D209007 | = UTF8           &nb= sp; | C        | = C            =      | = =3Dc/D209007         = +

        &= nbsp;  |         = |            =       = |          = |            =        | D209007=3DCTc/D209007

(4 =E8=A1=8C)

 

 

$ cat pgdata/PG_VERSION

13

 

Moto.

 

From:<= /b> David G. = Johnston <david.g.johnston@gmail.com= >
Sent: Tuesday, March 29, 2022 12:38 PM
To: =
=E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 <n2029@ndensan.co.jp>
Cc:= pgsql-admin@lists.postgr= esql.org
Subject: Re: About Unicode IVS

 



On Monday, March 28, 2022, =
=E8=8D=92=E4=BA=95=E5=85=83=E6=88=90 <n2029@ndensan.co.jp> = wrote:

Hi,

 

In the Length () = function, it will be 2 characters where you want it to be 1 = character.

Is it possible to respond by =
changing the settings such as changing the collation setting like SQL =
Server?
Also, if you understand how to =
deal with it (eg, create your own function), it would be helpful if you =
could provide as much information as you can.

 

 

Try char_length(text) instead.

 

David J.

 

------=_NextPart_001_0122_01D84395.CBDD3690-- ------=_NextPart_000_0121_01D84395.CBDD0F80 Content-Type: image/png; name="image002.png" Content-Transfer-Encoding: base64 Content-ID: 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 ------=_NextPart_000_0121_01D84395.CBDD0F80 Content-Type: image/png; name="image003.png" Content-Transfer-Encoding: base64 Content-ID: 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 6QufRrPA/wFI6+3woQzIwwAAAABJRU5ErkJggg== ------=_NextPart_000_0121_01D84395.CBDD0F80--