SPI_prepare_cursor - prepare a statement, without executing it yet


SPIPlanPtr SPI_prepare_cursor(const char * command, int nargs,
                              Oid * argtypes, int cursorOptions)


SPI_prepare_cursor is identical to SPI_prepare , except that it also allows specification of the planner's " cursor options " parameter. This is a bit mask having the values shown in nodes/parsenodes.h for the options field of DeclareCursorStmt . SPI_prepare always takes the cursor options as zero.


const char * command

command string

int nargs

number of input parameters ( $1 , $2 , etc.)

Oid * argtypes

pointer to an array containing the OID s of the data types of the parameters

int cursorOptions

integer bit mask of cursor options; zero produces default behavior

Return Value

SPI_prepare_cursor has the same return conventions as SPI_prepare .


Useful bits to set in cursorOptions include CURSOR_OPT_SCROLL , CURSOR_OPT_NO_SCROLL , CURSOR_OPT_FAST_PLAN , CURSOR_OPT_GENERIC_PLAN , and CURSOR_OPT_CUSTOM_PLAN . Note in particular that CURSOR_OPT_HOLD is ignored.