Thread: pgsql: Expose more cursor-related functionality in SPI: specifically,
pgsql: Expose more cursor-related functionality in SPI: specifically,
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Expose more cursor-related functionality in SPI: specifically, allow access to the planner's cursor-related planning options, and provide new FETCH/MOVE routines that allow access to the full power of those commands. Small refactoring of planner(), pg_plan_query(), and pg_plan_queries() APIs to make it convenient to pass the planning options down from SPI. This is the core-code portion of Pavel Stehule's patch for scrollable cursor support in plpgsql; I'll review and apply the plpgsql changes separately. Modified Files: -------------- pgsql/doc/src/sgml: spi.sgml (r1.55 -> r1.56) (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/spi.sgml.diff?r1=1.55&r2=1.56) pgsql/src/backend/commands: copy.c (r1.279 -> r1.280) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/copy.c.diff?r1=1.279&r2=1.280) explain.c (r1.160 -> r1.161) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/explain.c.diff?r1=1.160&r2=1.161) portalcmds.c (r1.63 -> r1.64) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/portalcmds.c.diff?r1=1.63&r2=1.64) prepare.c (r1.71 -> r1.72) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/prepare.c.diff?r1=1.71&r2=1.72) pgsql/src/backend/executor: functions.c (r1.114 -> r1.115) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/functions.c.diff?r1=1.114&r2=1.115) spi.c (r1.175 -> r1.176) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c.diff?r1=1.175&r2=1.176) pgsql/src/backend/optimizer/plan: planner.c (r1.216 -> r1.217) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.216&r2=1.217) pgsql/src/backend/parser: gram.y (r2.588 -> r2.589) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.588&r2=2.589) pgsql/src/backend/tcop: postgres.c (r1.530 -> r1.531) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/postgres.c.diff?r1=1.530&r2=1.531) pgsql/src/backend/utils/cache: plancache.c (r1.6 -> r1.7) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/plancache.c.diff?r1=1.6&r2=1.7) pgsql/src/include/executor: spi.h (r1.60 -> r1.61) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/spi.h.diff?r1=1.60&r2=1.61) pgsql/src/include/nodes: parsenodes.h (r1.345 -> r1.346) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h.diff?r1=1.345&r2=1.346) pgsql/src/include/optimizer: planner.h (r1.38 -> r1.39) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/planner.h.diff?r1=1.38&r2=1.39) pgsql/src/include/tcop: tcopprot.h (r1.88 -> r1.89) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/tcop/tcopprot.h.diff?r1=1.88&r2=1.89)