vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Ahemm,... UNICODE DB: create table t (a char(10)); set client_encoding = iso88591; insert into t VALUES ('זרו'); select a, octet_length(a),length(a) from t; a | octet_length | length ------------+--------------+-------- זרו | 13 | 3 (1 row) This is with 8.0.2. Just FYI. .... John > -----Original Message----- > From: pgsql-patches-owner@postgresql.org > [mailto > Sent: Tuesday, May 24, 2005 8:52 AM > To: y-asaba@sra.co.jp > Cc: pgsql-patches@postgresql.org; pgsql-hackers@postgresql.org > Subject: Re: [PATCHES] character type value is not padded with spaces > > 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 > > ---------------------------(end of > broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to > majordomo@postgresql.org) > > ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) |
| ||||
| I think you need to test with 5 characters, not 3. -- Tatsuo Ishii > Ahemm,... > > UNICODE DB: > > create table t (a char(10)); > set client_encoding = iso88591; > insert into t VALUES ('זרו'); > > select a, octet_length(a),length(a) from t; > a | octet_length | length > ------------+--------------+-------- > זרו | 13 | 3 > (1 row) > > This is with 8.0.2. > > Just FYI. > > ... John > > > -----Original Message----- > > From: pgsql-patches-owner@postgresql.org > > [mailto > > Sent: Tuesday, May 24, 2005 8:52 AM > > To: y-asaba@sra.co.jp > > Cc: pgsql-patches@postgresql.org; pgsql-hackers@postgresql.org > > Subject: Re: [PATCHES] character type value is not padded with spaces > > > > 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 > > > > ---------------------------(end of > > broadcast)--------------------------- > > TIP 2: you can get off all lists at once with the unregister command > > (send "unregister YourEmailAddressHere" to > > majordomo@postgresql.org) > > > > > ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly |