Thread

  1. Re: [PATCHES] character type value is not padded with spaces

    Tatsuo Ishii <t-ishii@sra.co.jp> — 2005-05-23T22:51:42Z

    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