Re: Server broken down in covering GB18030

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

In response to

Responses

Browse pgsql-bugs by date

  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