Re: character type value is not padded with spaces - Mailing list pgsql-patches

From Tatsuo Ishii
Subject Re: character type value is not padded with spaces
Date
Msg-id 20050524.075142.116347070.t-ishii@sra.co.jp
Whole thread Raw
In response to character type value is not padded with spaces  (Yoshiyuki Asaba <y-asaba@sra.co.jp>)
List pgsql-patches
Hackers,

The problem he found is not only existing in Japanese characters but
also in any multibyte encodings including UTF-8. For me the patch
looks good and I will commit it to 7.3, 7.4, 8.0 stables and current
if there's no objection.
--
Tatsuo Ishii

> Character type value including multibyte characters is not padded
> with spaces. It reproduces at 7.3.x, 7.4.x and 8.0.x.
>
>    create table t (a char(10));
>    insert into t values ('XXXXX'); -- X is 2byte character.
>
> I expect that 'XXXXX     ' is inserted. But 'XXXXX' is inserted.
>
>    select a, octed_length(a) from t;
>
>       a   | octet_length
>    -------+--------------
>     XXXXX |           10
>
> If padded with spaces, octet_length(a) is 15. This problem is caused
> that string length is calculated by byte length(VARSIZE) in
> exprTypmod().
>
> I attache the patch for this problem.
>
> Regards,
>
> --
> Yoshiyuki Asaba
> y-asaba@sra.co.jp

pgsql-patches by date:

Previous
From: Andrew Dunstan
Date:
Subject: plperl tests for currently untested features
Next
From: "John Hansen"
Date:
Subject: Re: character type value is not padded with spaces