Thread: pgsql-server: Support assignment to subfields of composite columns in

pgsql-server: Support assignment to subfields of composite columns in

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Support assignment to subfields of composite columns in UPDATE and INSERT.
As a side effect, cause subscripts in INSERT targetlists to do something
more or less sensible; previously we evaluated such subscripts and then
effectively ignored them.  Another side effect is that UPDATE-ing an
element or slice of an array value that is NULL now produces a non-null
result, namely an array containing just the assigned-to positions.

Modified Files:
--------------
    pgsql-server/doc/src/sgml/ref:
        insert.sgml (r1.26 -> r1.27)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/doc/src/sgml/ref/insert.sgml.diff?r1=1.26&r2=1.27)
        update.sgml (r1.28 -> r1.29)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/doc/src/sgml/ref/update.sgml.diff?r1=1.28&r2=1.29)
    pgsql-server/doc/src/sgml:
        rowtypes.sgml (r2.1 -> r2.2)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/doc/src/sgml/rowtypes.sgml.diff?r1=2.1&r2=2.2)
    pgsql-server/src/backend/executor:
        execQual.c (r1.163 -> r1.164)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/executor/execQual.c.diff?r1=1.163&r2=1.164)
    pgsql-server/src/backend/nodes:
        copyfuncs.c (r1.284 -> r1.285)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/nodes/copyfuncs.c.diff?r1=1.284&r2=1.285)
        equalfuncs.c (r1.223 -> r1.224)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/nodes/equalfuncs.c.diff?r1=1.223&r2=1.224)
        outfuncs.c (r1.238 -> r1.239)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/nodes/outfuncs.c.diff?r1=1.238&r2=1.239)
        readfuncs.c (r1.171 -> r1.172)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/nodes/readfuncs.c.diff?r1=1.171&r2=1.172)
    pgsql-server/src/backend/optimizer/util:
        clauses.c (r1.174 -> r1.175)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/optimizer/util/clauses.c.diff?r1=1.174&r2=1.175)
    pgsql-server/src/backend/parser:
        analyze.c (r1.303 -> r1.304)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/parser/analyze.c.diff?r1=1.303&r2=1.304)
        gram.y (r2.460 -> r2.461)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/parser/gram.y.diff?r1=2.460&r2=2.461)
        parse_clause.c (r1.131 -> r1.132)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/parser/parse_clause.c.diff?r1=1.131&r2=1.132)
        parse_expr.c (r1.172 -> r1.173)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/parser/parse_expr.c.diff?r1=1.172&r2=1.173)
        parse_node.c (r1.83 -> r1.84)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/parser/parse_node.c.diff?r1=1.83&r2=1.84)
        parse_target.c (r1.120 -> r1.121)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/parser/parse_target.c.diff?r1=1.120&r2=1.121)
    pgsql-server/src/backend/rewrite:
        rewriteHandler.c (r1.138 -> r1.139)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/rewrite/rewriteHandler.c.diff?r1=1.138&r2=1.139)
    pgsql-server/src/backend/utils/adt:
        ruleutils.c (r1.170 -> r1.171)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/utils/adt/ruleutils.c.diff?r1=1.170&r2=1.171)
    pgsql-server/src/include/nodes:
        execnodes.h (r1.116 -> r1.117)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/include/nodes/execnodes.h.diff?r1=1.116&r2=1.117)
        nodes.h (r1.156 -> r1.157)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/include/nodes/nodes.h.diff?r1=1.156&r2=1.157)
        parsenodes.h (r1.257 -> r1.258)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/include/nodes/parsenodes.h.diff?r1=1.257&r2=1.258)
        primnodes.h (r1.99 -> r1.100)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/include/nodes/primnodes.h.diff?r1=1.99&r2=1.100)
    pgsql-server/src/include/parser:
        parse_node.h (r1.38 -> r1.39)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/include/parser/parse_node.h.diff?r1=1.38&r2=1.39)
    pgsql-server/src/pl/plpgsql/src:
        pl_exec.c (r1.106 -> r1.107)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plpgsql/src/pl_exec.c.diff?r1=1.106&r2=1.107)
    pgsql-server/src/test/regress/expected:
        arrays.out (r1.20 -> r1.21)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/test/regress/expected/arrays.out.diff?r1=1.20&r2=1.21)
        rowtypes.out (r1.1 -> r1.2)

(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/test/regress/expected/rowtypes.out.diff?r1=1.1&r2=1.2)
    pgsql-server/src/test/regress/sql:
        arrays.sql (r1.16 -> r1.17)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/test/regress/sql/arrays.sql.diff?r1=1.16&r2=1.17)
        rowtypes.sql (r1.1 -> r1.2)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/test/regress/sql/rowtypes.sql.diff?r1=1.1&r2=1.2)