]> granicus.if.org Git - postgresql/commit
Fix an error in the original coding of holdable cursors: PersistHoldablePortal
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Feb 2007 22:49:24 +0000 (22:49 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Feb 2007 22:49:24 +0000 (22:49 +0000)
commit5b706ba481cefa1a9bedc81fdd9c6d6ed8ccde7b
treebe3c62df1b77c7744272bc2824e5715cf206dab7
parent09f9553dafdd6ffc7f5459775a5c8e28d530bd70
Fix an error in the original coding of holdable cursors: PersistHoldablePortal
thought that it didn't have to reposition the underlying tuplestore if the
portal is atEnd.  But this is not so, because tuplestores have separate read
and write cursors ... and the read cursor hasn't moved from the start.
This mistake explains bug #2970 from William Zhang.

Note: the coding here is pretty inefficient, but given that no one has noticed
this bug until now, I'd say hardly anyone uses the case where the cursor has
been advanced before being persisted.  So maybe it's not worth worrying about.
src/backend/commands/portalcmds.c