Re: postgres crash on CURSORS
| От | Tom Lane |
|---|---|
| Тема | Re: postgres crash on CURSORS |
| Дата | |
| Msg-id | 17748.954947053@sss.pgh.pa.us обсуждение |
| Ответ на | RE: postgres crash on CURSORS ("Hiroshi Inoue" <Inoue@tpf.co.jp>) |
| Ответы |
RE: postgres crash on CURSORS
|
| Список | pgsql-hackers |
"Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> Current abort check seems too late.
> For example,is the following behavior preferable ?
> =# begin;
> BEGIN
> =# aaa;
> ERROR: parser: parse error at or near "aaa"
> =# select * from aaaa;
> ERROR: Relation 'aaaa' does not exist
> ?? existence check ?? Why ??
> reindex=# select * from t; -- t is a existent table
> NOTICE: (transaction aborted): queries ignored until END
> *ABORT STATE*
Hmm. The error of course appears because we perform parsing and
rewriting before checking for abort. I am not sure whether the rewriter
can introduce begin/commit commands at present, but I would not like to
design the front-end processing on the assumption that it can never do so.
So I think we have to run the query that far before we think about
aborting.
>> If we are in abort state and
>> the submitted query string is
>>
>> SELECT foo ; ROLLBACK ; SELECT bar
>>
>> it seems to me that the correct response is to reject the first select
>> and process the second. The currently committed code does so, but
>> your patch would fail.
> It seems pg_parse_and_plan() returns NIL plan_list and NIL
> querytree_list in this case.
You're not looking at current CVS ;-)
regards, tom lane
В списке pgsql-hackers по дате отправления: