-
- Downloads
Separate parse-analysis for utility commands out of parser/analyze.c
(which now deals only in optimizable statements), and put that code into a new file parser/parse_utilcmd.c. This helps clarify and enforce the design rule that utility statements shouldn't be processed during the regular parse analysis phase; all interpretation of their meaning should happen after they are given to ProcessUtility to execute. (We need this because we don't retain any locks for a utility statement that's in a plan cache, nor have any way to detect that it's stale.) We are also able to simplify the API for parse_analyze() and related routines, because they will now always return exactly one Query structure. In passing, fix bug #3403 concerning trying to add a serial column to an existing temp table (this is largely Heikki's work, but we needed all that restructuring to make it safe).
Showing
- src/backend/commands/indexcmds.c 2 additions, 2 deletionssrc/backend/commands/indexcmds.c
- src/backend/commands/prepare.c 5 additions, 13 deletionssrc/backend/commands/prepare.c
- src/backend/commands/schemacmds.c 21 additions, 29 deletionssrc/backend/commands/schemacmds.c
- src/backend/commands/tablecmds.c 30 additions, 27 deletionssrc/backend/commands/tablecmds.c
- src/backend/commands/view.c 3 additions, 7 deletionssrc/backend/commands/view.c
- src/backend/nodes/makefuncs.c 15 additions, 1 deletionsrc/backend/nodes/makefuncs.c
- src/backend/optimizer/util/clauses.c 4 additions, 10 deletionssrc/backend/optimizer/util/clauses.c
- src/backend/parser/Makefile 2 additions, 2 deletionssrc/backend/parser/Makefile
- src/backend/parser/README 6 additions, 5 deletionssrc/backend/parser/README
- src/backend/parser/analyze.c 97 additions, 1941 deletionssrc/backend/parser/analyze.c
- src/backend/parser/gram.y 6 additions, 5 deletionssrc/backend/parser/gram.y
- src/backend/parser/parse_clause.c 7 additions, 15 deletionssrc/backend/parser/parse_clause.c
- src/backend/parser/parse_expr.c 3 additions, 7 deletionssrc/backend/parser/parse_expr.c
- src/backend/parser/parse_node.c 31 additions, 4 deletionssrc/backend/parser/parse_node.c
- src/backend/parser/parse_utilcmd.c 1800 additions, 0 deletionssrc/backend/parser/parse_utilcmd.c
- src/backend/rewrite/rewriteDefine.c 3 additions, 3 deletionssrc/backend/rewrite/rewriteDefine.c
- src/backend/tcop/postgres.c 38 additions, 50 deletionssrc/backend/tcop/postgres.c
- src/backend/tcop/utility.c 76 additions, 13 deletionssrc/backend/tcop/utility.c
- src/include/nodes/makefuncs.h 3 additions, 1 deletionsrc/include/nodes/makefuncs.h
- src/include/nodes/parsenodes.h 10 additions, 8 deletionssrc/include/nodes/parsenodes.h
Loading
Please register or sign in to comment