Re: [GENERAL] DECLARE CURSOR - Mailing list pgsql-hackers
From | Tom Lane |
---|---|
Subject | Re: [GENERAL] DECLARE CURSOR |
Date | |
Msg-id | 10127.1037577482@sss.pgh.pa.us Whole thread Raw |
In response to | Re: [GENERAL] DECLARE CURSOR (Bruce Momjian <pgman@candle.pha.pa.us>) |
Responses |
Re: [GENERAL] DECLARE CURSOR
|
List | pgsql-hackers |
Bruce Momjian <pgman@candle.pha.pa.us> writes: > 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. Since Marc hasn't yet announced RC1, I think we could get away with just a quick fix and re-roll of RC1 ... regards, tom lane > --------------------------------------------------------------------------- > 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, Pennsylvania 19073
pgsql-hackers by date: