Provided by: postgresql-client-8.0_8.0.7-2build1_i386 bug


       SPI_cursor_open - set up a cursor using a plan created with SPI_prepare


       Portal SPI_cursor_open(const char * name, void * plan,
                              Datum * values, const char * nulls,
                              bool read_only)


       SPI_cursor_open sets up a  cursor  (internally,  a  portal)  that  will
       execute  a  plan  prepared by SPI_prepare. The parameters have the same
       meanings as the corresponding parameters to SPI_execute_plan.

       Using a cursor instead of executing the plan directly has two benefits.
       First,  the  result  rows  can  be  retrieved a few at a time, avoiding
       memory overrun for queries that return many rows. Second, a portal  can
       outlive  the current procedure (it can, in fact, live to the end of the
       current transaction). Returning the  portal  name  to  the  procedure’s
       caller provides a way of returning a row set as result.


       const char * name
              name for portal, or NULL to let the system select a name

       void * plan
              execution plan (returned by SPI_prepare)

       Datum * values
              An  array  of  actual parameter values. Must have same length as
              the plan’s number of arguments.

       const char * nulls
              An array describing which parameters are null.  Must  have  same
              length  as  the  plan’s number of arguments.  n indicates a null
              value (entry in values will be ignored);  a  space  indicates  a
              nonnull value (entry in values is valid).

              If nulls is NULL then SPI_cursor_open assumes that no parameters
              are null.

       bool read_only
              true for read-only execution


       pointer to portal containing the cursor, or NULL on error

                                  2005-01-17                 SPI_cursor_open()