Add INSERT/UPDATE/DELETE RETURNING, with basic docs and regression tests.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 7a3e30e608a25800a1f7fdfaaca4da3f0ac0fb07
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2006-08-12T02:52:06Z
Releases: 8.2.0
Add INSERT/UPDATE/DELETE RETURNING, with basic docs and regression tests.
plpgsql support to come later.  Along the way, convert execMain's
SELECT INTO support into a DestReceiver, in order to eliminate some ugly
special cases.

Jonah Harris and Tom Lane

Files

PathChange+/−
doc/src/sgml/ref/delete.sgml modified +51 −5
doc/src/sgml/ref/insert.sgml modified +59 −6
doc/src/sgml/ref/update.sgml modified +54 −3
src/backend/access/common/printtup.c modified +4 −4
src/backend/commands/prepare.c modified +8 −1
src/backend/executor/execMain.c modified +455 −200
src/backend/executor/spi.c modified +4 −5
src/backend/nodes/copyfuncs.c modified +7 −2
src/backend/nodes/equalfuncs.c modified +7 −2
src/backend/nodes/outfuncs.c modified +3 −1
src/backend/nodes/readfuncs.c modified +3 −1
src/backend/optimizer/plan/planagg.c modified +2 −1
src/backend/optimizer/plan/planner.c modified +34 −5
src/backend/optimizer/plan/setrefs.c modified +102 −35
src/backend/optimizer/prep/prepjointree.c modified +5 −1
src/backend/optimizer/prep/preptlist.c modified +38 −1
src/backend/optimizer/util/clauses.c modified +4 −1
src/backend/parser/analyze.c modified +82 −7
src/backend/parser/gram.y modified +15 −5
src/backend/parser/keywords.c modified +2 −1
src/backend/tcop/dest.c modified +8 −1
src/backend/tcop/pquery.c modified +93 −59
src/backend/tcop/utility.c modified +2 −2
src/backend/utils/adt/ruleutils.c modified +83 −40
src/include/catalog/catversion.h modified +2 −2
src/include/executor/executor.h modified +2 −1
src/include/nodes/execnodes.h modified +3 −1
src/include/nodes/parsenodes.h modified +21 −3
src/include/optimizer/planmain.h modified +4 −1
src/include/tcop/dest.h modified +5 −4
src/include/utils/portal.h modified +11 −5
src/test/regress/expected/returning.out added +195 −0
src/test/regress/parallel_schedule modified +2 −2
src/test/regress/serial_schedule modified +2 −1
src/test/regress/sql/returning.sql added +87 −0