Add support for multi-row VALUES clauses as part of INSERT statements

Joe Conway <mail@joeconway.com>

Commit: 9caafda579f699b43fa4c89bf13a2331ef00611e
Author: Joe Conway <mail@joeconway.com>
Date: 2006-08-02T01:59:48Z
Releases: 8.2.0
Add support for multi-row VALUES clauses as part of INSERT statements
(e.g. "INSERT ... VALUES (...), (...), ...") and elsewhere as allowed
by the spec. (e.g. similar to a FROM clause subselect). initdb required.
Joe Conway and Tom Lane.

Files

PathChange+/−
src/backend/catalog/heap.c modified +2 −2
src/backend/commands/explain.c modified +21 −1
src/backend/executor/execAmi.c modified +19 −3
src/backend/executor/execProcnode.c modified +18 −1
src/backend/executor/Makefile modified +3 −2
src/backend/executor/nodeValuesscan.c added +332 −0
src/backend/nodes/copyfuncs.c modified +22 −2
src/backend/nodes/equalfuncs.c modified +3 −2
src/backend/nodes/outfuncs.c modified +16 −1
src/backend/nodes/print.c modified +14 −1
src/backend/nodes/readfuncs.c modified +4 −1
src/backend/optimizer/path/allpaths.c modified +25 −1
src/backend/optimizer/path/costsize.c modified +62 −1
src/backend/optimizer/plan/createplan.c modified +65 −4
src/backend/optimizer/plan/planner.c modified +21 −10
src/backend/optimizer/plan/setrefs.c modified +19 −1
src/backend/optimizer/plan/subselect.c modified +12 −1
src/backend/optimizer/util/clauses.c modified +8 −1
src/backend/optimizer/util/pathnode.c modified +20 −1
src/backend/optimizer/util/plancat.c modified +19 −4
src/backend/optimizer/util/relnode.c modified +8 −3
src/backend/parser/analyze.c modified +414 −60
src/backend/parser/gram.y modified +50 −57
src/backend/parser/parse_expr.c modified +11 −49
src/backend/parser/parse_node.c modified +2 −2
src/backend/parser/parse_relation.c modified +121 −2
src/backend/parser/parse_target.c modified +134 −25
src/backend/parser/parse_type.c modified +2 −1
src/backend/rewrite/rewriteHandler.c modified +164 −6
src/backend/utils/adt/ruleutils.c modified +149 −34
src/include/catalog/catversion.h modified +2 −2
src/include/executor/nodeValuesscan.h added +27 −0
src/include/nodes/execnodes.h modified +22 −1
src/include/nodes/nodes.h modified +3 −1
src/include/nodes/parsenodes.h modified +30 −17
src/include/nodes/plannodes.h modified +11 −1
src/include/optimizer/cost.h modified +4 −1
src/include/optimizer/pathnode.h modified +2 −1
src/include/parser/parse_relation.h modified +5 −1
src/include/parser/parse_target.h modified +7 −5