Thread: pgsql: Disallow scrolling of FOR UPDATE/FOR SHARE cursors, so as to

pgsql: Disallow scrolling of FOR UPDATE/FOR SHARE cursors, so as to

From
tgl@postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Disallow scrolling of FOR UPDATE/FOR SHARE cursors, so as to avoid problems
in corner cases such as re-fetching a just-deleted row.  We may be able to
relax this someday, but let's find out how many people really care before
we invest a lot of work in it.  Per report from Heikki and subsequent
discussion.

While in the neighborhood, make the combination of INSENSITIVE and FOR UPDATE
throw an error, since they are semantically incompatible.  (Up to now we've
accepted but just ignored the INSENSITIVE option of DECLARE CURSOR.)

Modified Files:
--------------
    pgsql/doc/src/sgml/ref:
        declare.sgml (r1.41 -> r1.42)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/declare.sgml?r1=1.41&r2=1.42)
    pgsql/src/backend/commands:
        portalcmds.c (r1.65 -> r1.66)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/portalcmds.c?r1=1.65&r2=1.66)
    pgsql/src/backend/executor:
        spi.c (r1.181 -> r1.182)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c?r1=1.181&r2=1.182)
    pgsql/src/backend/parser:
        analyze.c (r1.367 -> r1.368)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/analyze.c?r1=1.367&r2=1.368)
    pgsql/src/include/nodes:
        parsenodes.h (r1.353 -> r1.354)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h?r1=1.353&r2=1.354)
    pgsql/src/test/regress/expected:
        portals.out (r1.15 -> r1.16)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/portals.out?r1=1.15&r2=1.16)
    pgsql/src/test/regress/sql:
        portals.sql (r1.12 -> r1.13)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/portals.sql?r1=1.12&r2=1.13)