Re: A mb problem in PostgreSQL
Chih-Chang,
Do you remember the mb problem about Big5?
Sure.
Now I have tested all Big5 chars (with ETen extension -- some chars in
CNS 11643-1992 Plane 3) by the program in the attachment on
PostgreSQL 7.0.3 with patches from you show me.
The execution result is also in the attachment.
The first two insertion fails are normal, because these two chars are
duplicated in Big5.
But the 3rd Big5 char (0xF9DC <- > CNS Plane3 0x4B5C) insertion
is failed. I have no idea about why it is a "Unterminated quoted
string".
Could you see where the problem is?
Thanks for the testing effort!
Please apply following one-line-patch and test it again. If it's ok, I
will commit it to both current and stable trees.
--
Tatsuo Ishii
*** postgresql-7.0.3/src/backend/utils/mb/big5.c~ Thu May 27 00:19:54 1999
--- postgresql-7.0.3/src/backend/utils/mb/big5.c Thu Dec 7 13:39:01 2000
***************
*** 322,328 ****
if (b2c3[i][0] == big5)
{
*lc = LC_CNS11643_3;
! return (b2c3[i][1]);
}
}
--- 322,328 ----
if (b2c3[i][0] == big5)
{
*lc = LC_CNS11643_3;
! return (b2c3[i][1] | 0x8080U);
}
}
Import Notes
Reply to msg id not found: 3A2F0A81.D490372A@cc.kmu.edu.twReference msg id not found: 3A2F0A81.D490372A@cc.kmu.edu.tw
Tatsuo,
Tatsuo Ishii 嚙篇嚙瘩嚙瘦
Please apply following one-line-patch and test it again. If it's ok, I
will commit it to both current and stable trees.! return (b2c3[i][1] | 0x8080U);
Yes, it's OK. Thank you!
But I wonder why we need to "| 0x8080U"?
b2c3[][] and BIG5toCNS()'s return value are both unsigned short, aren't they?
--
Chih-Chang Hsieh
Import Notes
Reference msg id not found: 3A2F0A81.D490372A@cc.kmu.edu.tw
Please apply following one-line-patch and test it again. If it's ok, I
will commit it to both current and stable trees.! return (b2c3[i][1] | 0x8080U);
Yes, it's OK. Thank you!
But I wonder why we need to "| 0x8080U"?
b2c3[][] and BIG5toCNS()'s return value are both unsigned short, aren't they?
b2c3 has CNS 11643-1992 value. That is, we need to add 0x8080 to
convert to EUC_TW.
--
Tatsuo Ishii
Please apply following one-line-patch and test it again. If it's ok, I
will commit it to both current and stable trees.! return (b2c3[i][1] | 0x8080U);
Yes, it's OK. Thank you!
Thanks for the testings. I will commit soon.
But I wonder why we need to "| 0x8080U"?
b2c3[][] and BIG5toCNS()'s return value are both unsigned short, aren't they?
Since the function returns EUC_TW. In b2c3[] we have CNS 11643-1992
value, and we need to add 0x8080 to convert from CNS 11643-1992 to
EUC.
--
Tatsuo Ishii