• Jan Wieck's avatar
    Enhancement of SPI to get access to portals · d27f363e
    Jan Wieck authored
    - New functions to create a portal using a prepared/saved
      SPI plan or lookup an existing portal by name.
    - Functions to fetch/move from/in portals. Results are placed
      in the usual SPI_processed and SPI_tuptable, so the entire
      set of utility functions can be used to gain attribute access.
    - Prepared/saved SPI plans now use their own memory context
      and SPI_freeplan(plan) can remove them.
    - Tuple result sets (SPI_tuptable) now uses it's own memory
      context and can be free'd by SPI_freetuptable(tuptab).
    
    Enhancement of PL/pgSQL
    
    - Uses generic named portals internally in FOR ... SELECT
      loops to avoid running out of memory on huge result sets.
    - Support for CURSOR and REFCURSOR syntax using the new SPI
      functionality. Cursors used internally only need no explicit
      transaction block. Refcursor variables can be used inside
      of explicit transaction block to pass cursors between main
      application and functions.
    
    
    Jan
    d27f363e
portal.h 2.03 KB