Thread: pgsql: Make use of plancache module for SPI plans.
Log Message: ----------- 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.) Modified Files: -------------- pgsql/contrib/spi: refint.c (r1.31 -> r1.32) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/spi/refint.c.diff?r1=1.31&r2=1.32) timetravel.c (r1.26 -> r1.27) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/spi/timetravel.c.diff?r1=1.26&r2=1.27) pgsql/doc/src/sgml: spi.sgml (r1.53 -> r1.54) (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/spi.sgml.diff?r1=1.53&r2=1.54) pgsql/src/backend/executor: spi.c (r1.171 -> r1.172) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c.diff?r1=1.171&r2=1.172) pgsql/src/backend/utils/adt: ri_triggers.c (r1.91 -> r1.92) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ri_triggers.c.diff?r1=1.91&r2=1.92) ruleutils.c (r1.252 -> r1.253) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c.diff?r1=1.252&r2=1.253) xml.c (r1.34 -> r1.35) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/xml.c.diff?r1=1.34&r2=1.35) pgsql/src/backend/utils/cache: plancache.c (r1.1 -> r1.2) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/plancache.c.diff?r1=1.1&r2=1.2) pgsql/src/include/executor: spi.h (r1.58 -> r1.59) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/spi.h.diff?r1=1.58&r2=1.59) spi_priv.h (r1.27 -> r1.28) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/spi_priv.h.diff?r1=1.27&r2=1.28) pgsql/src/include/utils: plancache.h (r1.1 -> r1.2) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/plancache.h.diff?r1=1.1&r2=1.2) pgsql/src/pl/plpgsql/src: pl_exec.c (r1.189 -> r1.190) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_exec.c.diff?r1=1.189&r2=1.190) plpgsql.h (r1.85 -> r1.86) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/plpgsql.h.diff?r1=1.85&r2=1.86) pgsql/src/test/regress/expected: plancache.out (r1.1 -> r1.2) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/plancache.out.diff?r1=1.1&r2=1.2) pgsql/src/test/regress: regress.c (r1.69 -> r1.70) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/regress.c.diff?r1=1.69&r2=1.70) pgsql/src/test/regress/sql: plancache.sql (r1.1 -> r1.2) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/plancache.sql.diff?r1=1.1&r2=1.2)