This documentation is for an unsupported version of PostgreSQL.
	    You may want to view the same page for the
	    
current
	    version, or one of the other supported versions listed above instead.
	  
 
          
            
SPI_cursor_open
  
  Name
SPI_cursor_open -- Sets up a cursor using
  a plan created with 
SPI_prepare
 
  
  Synopsis
  
SPI_cursor_open(name,
plan,
values,
nulls)
  
    
    Inputs
    
      
        - char *name
 
        - 
          
Name for portal, or NULL to let the system select a
          name
         
        - void *plan
 
        - 
          
Execution plan
         
        - Datum *values
 
        - 
          
Actual parameter values
         
        - char *nulls
 
        - 
          
Array describing which parameters are NULLs
          
            
              
                | n indicates NULL
                (values[] entry ignored) | 
              
              
                | space indicates not NULL (values[] entry is
                valid) | 
              
            
          
         
      
     
   
  
    
    Outputs
    
      
        - Portal
 
        - 
          
Pointer to Portal containing cursor, or NULL on
          error
         
      
     
   
 
  
  Description
  SPI_cursor_open sets up a cursor
  (internally, a Portal) that will execute a plan prepared by
  SPI_prepare.
  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 rowset result.
 
  
  Usage
  If nulls is NULL then
  SPI_cursor_open assumes that all
  parameters (if any) are NOT NULL.