-
- Downloads
Make use of plancache module for SPI plans. In particular, since plpgsql
uses SPI plans, this finally fixes the ancient gotcha that you can't drop and recreate a temp table used by a plpgsql function. Along the way, clean up SPI's API a little bit by declaring SPI plan pointers as "SPIPlanPtr" instead of "void *". This is cosmetic but helps to forestall simple programming mistakes. (I have changed some but not all of the callers to match; there are still some "void *"'s in contrib and the PL's. This is intentional so that we can see if anyone's compiler complains about it.)
Showing
- contrib/spi/refint.c 5 additions, 5 deletionscontrib/spi/refint.c
- contrib/spi/timetravel.c 2 additions, 2 deletionscontrib/spi/timetravel.c
- doc/src/sgml/spi.sgml 62 additions, 38 deletionsdoc/src/sgml/spi.sgml
- src/backend/executor/spi.c 282 additions, 120 deletionssrc/backend/executor/spi.c
- src/backend/utils/adt/ri_triggers.c 28 additions, 30 deletionssrc/backend/utils/adt/ri_triggers.c
- src/backend/utils/adt/ruleutils.c 5 additions, 5 deletionssrc/backend/utils/adt/ruleutils.c
- src/backend/utils/adt/xml.c 3 additions, 3 deletionssrc/backend/utils/adt/xml.c
- src/backend/utils/cache/plancache.c 12 additions, 12 deletionssrc/backend/utils/cache/plancache.c
- src/include/executor/spi.h 21 additions, 13 deletionssrc/include/executor/spi.h
- src/include/executor/spi_priv.h 39 additions, 20 deletionssrc/include/executor/spi_priv.h
- src/include/utils/plancache.h 2 additions, 1 deletionsrc/include/utils/plancache.h
- src/pl/plpgsql/src/pl_exec.c 87 additions, 32 deletionssrc/pl/plpgsql/src/pl_exec.c
- src/pl/plpgsql/src/plpgsql.h 4 additions, 3 deletionssrc/pl/plpgsql/src/plpgsql.h
- src/test/regress/expected/plancache.out 61 additions, 0 deletionssrc/test/regress/expected/plancache.out
- src/test/regress/regress.c 3 additions, 3 deletionssrc/test/regress/regress.c
- src/test/regress/sql/plancache.sql 40 additions, 0 deletionssrc/test/regress/sql/plancache.sql
Loading
Please register or sign in to comment