Re: [GENERAL] DECLARE CURSOR - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [GENERAL] DECLARE CURSOR
Date
Msg-id 5958.1037561585@sss.pgh.pa.us
Whole thread Raw
Responses Re: [GENERAL] DECLARE CURSOR  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
snpe <snpe@snpe.co.yu> writes:
>   When I call DECLARE CURSOR out of transaction command success,
> but cursor is not created
>   Reference manual say that this get error :
> ERROR: DECLARE CURSOR may only be used in begin/end transaction blocks 

Oops.  I removed that test on 21-Oct as part of this fix:

2002-10-21 18:06  tgl
* src/: backend/access/transam/xact.c, backend/catalog/heap.c,backend/catalog/index.c,
backend/commands/dbcommands.c,backend/commands/indexcmds.c,backend/commands/tablecmds.c,backend/commands/vacuum.c,
backend/parser/analyze.c,include/access/xact.h:Fix places that were usingIsTransactionBlock() as an (inadequate) check
thatthey'd get tocommit immediately on finishing.  There's now a centralized routinePreventTransactionChain() that
implementsthe necessary tests.
 

My reasons for removing it were (a) it was in the wrong place (analyze.c
is not the right place to test execution-time constraints), and (b) it
was the wrong test: the test as written was just IsTransactionBlock(),
which is wrong in the case of autocommit-off, since a DECLARE CURSOR
will start a new transaction perfectly well.  Another objection is that
inside a function call, it ought to be legal to do DECLARE CURSOR even
if we're not in a transaction block, since the function might intend to
use the cursor itself before returning.

I think I had intended to put together an alternative test that only
complained about interactive DECLARE CURSOR and understood about
autocommit, but I forgot.

At this point we can either add the fixed-up error check (meaning RC1
won't be the release after all), or change the documentation.

Comments?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: btree shrinking again
Next
From: Bruno Wolff III
Date:
Subject: Getting float8 data into cube?