Attached is a patch implementing updatable cursors in HEAD. Regression test and documentation are included.
Updateable cursors are used as follows: begin; declare foo cursor for select * from bar for update; fetch foo; update bar set abc='def' where current of foo; fetch foo; delete from bar where current of foo; commit; Two points: i) The patch doesn't implement updateable cursors for cursors marked WITH HOLD. I have working code for this and will send it in soon. ii) I've implemented a new snapshot type since, AFAICT, updateable cursors have a type of tuple visibility. Namely, if the base table of a cursor is updated based on that cursor, the new and old tuples are removed from the cursor's set of visible tuples. Like wise, deleted tuples are also removed. Thanks, Gavin
wherecur2.diff.gz
Description: GNU Zip compressed data
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend