From: | "Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: Server broken down in covering GB18030 |
Date: | 2005-08-03 09:09:06 |
Message-ID: | dcq1nv$2h3r$1@news.hub.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
My theory is "select;" incurs a parse error and this error message is
supposed to be translated into your encoding, but unfortunately not every
UTF8 character is necessarily be encoded as GB18030, which will cause an
infinite recursive elogs just like this:
1:elog(parse_error) // contain unencodable characters
2: elog(report_not_translatable) // contain unencodable characters
again
3: elog(report_report_not_translatable)
4: elog(report_report_report_not_translatable)
5: ...
and corrupt the elog stack.
To fix this, we could just print a "Unsupport encoding" message which is
just a plain ascii character string and stop the recursion at step 3.
Regards,
Qingqing
"" <yayooo(at)gmail(dot)com> writes
> template1=# select version();
> PostgreSQL 8.0.3 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC)
> 3.4.2 (mingw-special)
> template1=# create database test1 encoding 'unicode';
> test1=# \encoding
> UNICODE
> test1=# \encoding gb18030
> test1=# \encoding
> GB18030
> test1=# select;
...
> : ERRORDATA_STACK_SIZE exceeded
From | Date | Subject | |
---|---|---|---|
Next Message | DKnoto | 2005-08-03 09:29:38 | BUG #1803: Incomplete table list in psql |
Previous Message | Jenny Wang | 2005-08-03 03:17:15 | BUG #1802: index is not a btree |