git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: a264671) | patch
Modify processing of DECLARE CURSOR and EXPLAIN so that they can resolve the
2007年4月27日 22:05:49 +0000 (22:05 +0000)
2007年4月27日 22:05:49 +0000 (22:05 +0000)
commit bbbe825f5f46d7ead60502f43d3b414719a41aa5
Modify processing of DECLARE CURSOR and EXPLAIN so that they can resolve the
types of unspecified parameters when submitted via extended query protocol.
This worked in 8.2 but I had broken it during plancache changes. DECLARE
CURSOR is now treated almost exactly like a plain SELECT through parse
analysis, rewrite, and planning; only just before sending to the executor
do we divert it away to ProcessUtility. This requires a special-case check
in a number of places, but practically all of them were already special-casing
SELECT INTO, so it's not too ugly. (Maybe it would be a good idea to merge
the two by treating IntoClause as a form of utility statement? Not going to
worry about that now, though.) That approach doesn't work for EXPLAIN,
however, so for that I punted and used a klugy solution of running parse
analysis an extra time if under extended query protocol.
26 files changed:
src/backend/commands/copy.c diff | blob | blame | history
src/backend/commands/explain.c diff | blob | blame | history
src/backend/commands/portalcmds.c diff | blob | blame | history
src/backend/commands/prepare.c diff | blob | blame | history
src/backend/executor/execMain.c diff | blob | blame | history
src/backend/executor/functions.c diff | blob | blame | history
src/backend/executor/spi.c diff | blob | blame | history
src/backend/nodes/copyfuncs.c diff | blob | blame | history
src/backend/nodes/equalfuncs.c diff | blob | blame | history
src/backend/nodes/outfuncs.c diff | blob | blame | history
src/backend/nodes/readfuncs.c diff | blob | blame | history
src/backend/optimizer/plan/planagg.c diff | blob | blame | history
src/backend/optimizer/plan/planner.c diff | blob | blame | history
src/backend/optimizer/prep/prepjointree.c diff | blob | blame | history
src/backend/optimizer/util/clauses.c diff | blob | blame | history
src/backend/parser/analyze.c diff | blob | blame | history
src/backend/parser/gram.y diff | blob | blame | history
src/backend/parser/parse_clause.c diff | blob | blame | history
src/backend/parser/parse_expr.c diff | blob | blame | history
src/backend/parser/parse_type.c diff | blob | blame | history
src/backend/rewrite/rewriteDefine.c diff | blob | blame | history
src/backend/tcop/pquery.c diff | blob | blame | history
src/backend/tcop/utility.c diff | blob | blame | history
src/include/commands/portalcmds.h diff | blob | blame | history
src/include/nodes/parsenodes.h diff | blob | blame | history
src/include/nodes/plannodes.h diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /