-
- Downloads
First phase of plan-invalidation project: create a plan cache management
module and teach PREPARE and protocol-level prepared statements to use it. In service of this, rearrange utility-statement processing so that parse analysis does not assume table schemas can't change before execution for utility statements (necessary because we don't attempt to re-acquire locks for utility statements when reusing a stored plan). This requires some refactoring of the ProcessUtility API, but it ends up cleaner anyway, for instance we can get rid of the QueryContext global. Still to do: fix up SPI and related code to use the plan cache; I'm tempted to try to make SQL functions use it too. Also, there are at least some aspects of system state that we want to ensure remain the same during a replan as in the original processing; search_path certainly ought to behave that way for instance, and perhaps there are others.
Showing
- src/backend/access/transam/xact.c 19 additions, 21 deletionssrc/backend/access/transam/xact.c
- src/backend/bootstrap/bootparse.y 3 additions, 3 deletionssrc/backend/bootstrap/bootparse.y
- src/backend/commands/cluster.c 3 additions, 3 deletionssrc/backend/commands/cluster.c
- src/backend/commands/copy.c 16 additions, 27 deletionssrc/backend/commands/copy.c
- src/backend/commands/dbcommands.c 1 addition, 6 deletionssrc/backend/commands/dbcommands.c
- src/backend/commands/explain.c 108 additions, 76 deletionssrc/backend/commands/explain.c
- src/backend/commands/indexcmds.c 2 additions, 22 deletionssrc/backend/commands/indexcmds.c
- src/backend/commands/portalcmds.c 39 additions, 29 deletionssrc/backend/commands/portalcmds.c
- src/backend/commands/prepare.c 294 additions, 257 deletionssrc/backend/commands/prepare.c
- src/backend/commands/schemacmds.c 9 additions, 4 deletionssrc/backend/commands/schemacmds.c
- src/backend/commands/tablecmds.c 8 additions, 2 deletionssrc/backend/commands/tablecmds.c
- src/backend/commands/tablespace.c 1 addition, 9 deletionssrc/backend/commands/tablespace.c
- src/backend/commands/vacuum.c 7 additions, 6 deletionssrc/backend/commands/vacuum.c
- src/backend/commands/view.c 82 additions, 65 deletionssrc/backend/commands/view.c
- src/backend/executor/functions.c 21 additions, 24 deletionssrc/backend/executor/functions.c
- src/backend/executor/spi.c 8 additions, 3 deletionssrc/backend/executor/spi.c
- src/backend/nodes/copyfuncs.c 1 addition, 3 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 1 addition, 3 deletionssrc/backend/nodes/equalfuncs.c
- src/backend/nodes/outfuncs.c 1 addition, 2 deletionssrc/backend/nodes/outfuncs.c
- src/backend/nodes/params.c 32 additions, 1 deletionsrc/backend/nodes/params.c
Loading
Please register or sign in to comment