Thread: plpgsql cursors : dynamic or static?
Hi: Are cursors in plpgsql dynamic or static? For example : ... /* some code */ FOR rec in SELECT f1,f2 FROM table1 WHERE .... LOOP /* some codes that manipulate table1 */ END LOOP; Do the result set pointed to by the cursor remains the same even if performed some data manipulation inside the FOR..LOOP? Thank you in advance, ludwig. __________________________________________________ Do you Yahoo!? New DSL Internet Access from SBC & Yahoo! http://sbc.yahoo.com
Ludwig, > Are cursors in plpgsql dynamic or static? > > For example : > > ... /* some code */ > FOR rec in SELECT f1,f2 > FROM table1 WHERE .... LOOP > > /* some codes that manipulate table1 */ > END LOOP; Technically speaking, that is not a cursor, even though it serves the same purpose. I'm pretty sure it's static, but it would be easy to test ... why don't you give it a try? -- -Josh BerkusAglio Database SolutionsSan Francisco
Josh Berkus <josh@agliodbs.com> writes: >> Are cursors in plpgsql dynamic or static? >> >> FOR rec in SELECT f1,f2 >> FROM table1 WHERE .... LOOP >> >> /* some codes that manipulate table1 */ >> END LOOP; > Technically speaking, that is not a cursor, even though it serves the same > purpose. > I'm pretty sure it's static, but it would be easy to test ... why don't you > give it a try? The result definitely will be static in 7.3. I'm not entirely sure about prior releases: we used to manipulate the current-command counter in a different way. regards, tom lane