Skip site navigation (1) Skip section navigation (2)

pgsql: Support UPDATE/DELETE WHERE CURRENT OF cursor_name, per SQL

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Support UPDATE/DELETE WHERE CURRENT OF cursor_name, per SQL
Date: 2007-06-11 01:16:30
Message-ID: 20070611011630.8E4439FB507@postgresql.org (view raw or flat)
Thread:
Lists: pgsql-committers
Log Message:
-----------
Support UPDATE/DELETE WHERE CURRENT OF cursor_name, per SQL standard.

Along the way, allow FOR UPDATE in non-WITH-HOLD cursors; there may once
have been a reason to disallow that, but it seems to work now, and it's
really rather necessary if you want to select a row via a cursor and then
update it in a concurrent-safe fashion.

Original patch by Arul Shaji, rather heavily editorialized by Tom Lane.

Modified Files:
--------------
    pgsql/doc/src/sgml/ref:
        declare.sgml (r1.40 -> r1.41)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/declare.sgml.diff?r1=1.40&r2=1.41)
        delete.sgml (r1.30 -> r1.31)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/delete.sgml.diff?r1=1.30&r2=1.31)
        update.sgml (r1.43 -> r1.44)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/update.sgml.diff?r1=1.43&r2=1.44)
    pgsql/src/backend/executor:
        Makefile (r1.25 -> r1.26)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/Makefile.diff?r1=1.25&r2=1.26)
        execMain.c (r1.294 -> r1.295)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execMain.c.diff?r1=1.294&r2=1.295)
        execQual.c (r1.218 -> r1.219)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c.diff?r1=1.218&r2=1.219)
        nodeTidscan.c (r1.53 -> r1.54)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeTidscan.c.diff?r1=1.53&r2=1.54)
    pgsql/src/backend/nodes:
        copyfuncs.c (r1.377 -> r1.378)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.377&r2=1.378)
        equalfuncs.c (r1.308 -> r1.309)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.308&r2=1.309)
        outfuncs.c (r1.309 -> r1.310)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.309&r2=1.310)
        readfuncs.c (r1.207 -> r1.208)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/readfuncs.c.diff?r1=1.207&r2=1.208)
    pgsql/src/backend/optimizer/path:
        clausesel.c (r1.85 -> r1.86)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/clausesel.c.diff?r1=1.85&r2=1.86)
        costsize.c (r1.184 -> r1.185)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c.diff?r1=1.184&r2=1.185)
        tidpath.c (r1.29 -> r1.30)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/tidpath.c.diff?r1=1.29&r2=1.30)
    pgsql/src/backend/optimizer/plan:
        setrefs.c (r1.135 -> r1.136)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/setrefs.c.diff?r1=1.135&r2=1.136)
    pgsql/src/backend/optimizer/prep:
        prepunion.c (r1.141 -> r1.142)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepunion.c.diff?r1=1.141&r2=1.142)
    pgsql/src/backend/optimizer/util:
        clauses.c (r1.245 -> r1.246)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.245&r2=1.246)
        var.c (r1.69 -> r1.70)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/var.c.diff?r1=1.69&r2=1.70)
    pgsql/src/backend/parser:
        analyze.c (r1.363 -> r1.364)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/analyze.c.diff?r1=1.363&r2=1.364)
        gram.y (r2.591 -> r2.592)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.591&r2=2.592)
        keywords.c (r1.187 -> r1.188)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/keywords.c.diff?r1=1.187&r2=1.188)
        parse_expr.c (r1.218 -> r1.219)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_expr.c.diff?r1=1.218&r2=1.219)
    pgsql/src/backend/rewrite:
        rewriteManip.c (r1.103 -> r1.104)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteManip.c.diff?r1=1.103&r2=1.104)
    pgsql/src/backend/utils/adt:
        ruleutils.c (r1.259 -> r1.260)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c.diff?r1=1.259&r2=1.260)
    pgsql/src/include/executor:
        executor.h (r1.139 -> r1.140)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/executor.h.diff?r1=1.139&r2=1.140)
    pgsql/src/include/nodes:
        nodes.h (r1.200 -> r1.201)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h.diff?r1=1.200&r2=1.201)
        primnodes.h (r1.130 -> r1.131)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/primnodes.h.diff?r1=1.130&r2=1.131)
    pgsql/src/test/regress/expected:
        portals.out (r1.13 -> r1.14)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/portals.out.diff?r1=1.13&r2=1.14)
    pgsql/src/test/regress/sql:
        portals.sql (r1.10 -> r1.11)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/portals.sql.diff?r1=1.10&r2=1.11)

Added Files:
-----------
    pgsql/src/backend/executor:
        execCurrent.c (r1.1)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execCurrent.c?rev=1.1&content-type=text/x-cvsweb-markup)

pgsql-committers by date

Next:From: User H-saitoDate: 2007-06-11 01:51:13
Subject: psqlodbc - psqlodbc: Various problems of configure cleared.
Previous:From: User PgunittestDate: 2007-06-10 20:28:58
Subject: pgunittest - pgUnitTest:

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group