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

From Bruce Momjian
Subject Re: [GENERAL] DECLARE CURSOR
Date
Msg-id 200211172344.gAHNiwS09569@candle.pha.pa.us
Whole thread Raw
In response to Re: [GENERAL] DECLARE CURSOR  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [GENERAL] DECLARE CURSOR  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [GENERAL] DECLARE CURSOR  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Let's just fix it and roll an RC2 with the fix.  If not, we can just fix
it in 7.3.1 but I see little problem in rolling an RC2.

---------------------------------------------------------------------------

Tom Lane wrote:
> 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 using
>     IsTransactionBlock() as an (inadequate) check that they'd get to
>     commit immediately on finishing.  There's now a centralized routine
>     PreventTransactionChain() that implements the 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
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: CLUSTER ALL syntax
Next
From: Tom Lane
Date:
Subject: Re: [GENERAL] DECLARE CURSOR