SPI_prepare_cursor — prepare a statement, without executing it yet
SPIPlanPtr SPI_prepare_cursor(const char *command, intnargs, Oid *argtypes, intcursorOptions)
   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 * commandcommand string
int nargs
      number of input parameters ($1, $2, etc.)
     
Oid * argtypespointer to an array containing the OIDs of the data types of the parameters
int cursorOptionsinteger bit mask of cursor options; zero produces default behavior
   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.