Re: [HACKERS] fatal copy in/out error (6.5.3)

Поиск
Список
Период
Сортировка
От Tatsuo Ishii
Тема Re: [HACKERS] fatal copy in/out error (6.5.3)
Дата
Msg-id 20000125110635M.t-ishii@sra.co.jp
обсуждение исходный текст
Ответ на Re: [HACKERS] fatal copy in/out error (6.5.3)  (Michael Robinson <robinson@netrinsics.com>)
Ответы Re: [HACKERS] fatal copy in/out error (6.5.3)  (Michael Robinson <robinson@netrinsics.com>)
Список pgsql-hackers
> My config line:
>     ./configure  --with-mb=EUC_CN
> 
> I can forward my include/config.h if that would be helpful.
> 
> The OS is FreeBSD 3.4-RELEASE.
> 
> >This looks to me like something is deciding that \217 must be the
> >start of a 3-byte multibyte character... in which case, it should have
> >appeared that way in your database, I think.

I suspect that too.

> That would be very weird, if true.  \217 is certainly not the beginning of
> a UTF-8 three-byte sequence, and EUC doesn't have three-byte codes.

No. some EUC's (EUC_TW and EUC_JP) has three-byte or even four-byte
codes.  But you said your database has been configured as EUC_CN. As
far as I know, it only uses 1 or 2 byte-code. Another thing I am
confused is that ' \217\210' is not a valid EUC_CN data at all. \217
(0x8f) specifies code set 3 which does not exist in EUC_CN.  In this
case, it is assumed that the multi-byte word to be consisted of 3-byte
code in the current implementation of PostgreSQL.

In short, the problem you have is caused by:

1) wrong data submitted into the table
2) PostgreSQL assumes the data is consisted of 3 bytes data

I would recommend you delete the data since it's not correct anyway.
In the mean time I'm going to fix 2) so that it assumes data be
consisted of 2 bytes even if wrong data sequence is submitted
(needless to say, except ascii).
Do you want the backpatch for 6.5.3?
--
Tatsuo Ishii


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Hiroshi Inoue"
Дата:
Сообщение: RE: [HACKERS] Well, then you keep your darn columns
Следующее
От: Thomas Lockhart
Дата:
Сообщение: Re: [GENERAL] max(oid)