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)