SPI_freetuptable frees a row set created by a
   prior SPI command execution function, such as
   SPI_execute.  Therefore, this function is often called
   with the global variable SPI_tuptable as
   argument.
  
   This function is useful if a SPI procedure needs to execute
   multiple commands and does not want to keep the results of earlier
   commands around until it ends.  Note that any unfreed row sets will
   be freed anyway at SPI_finish.
   Also, if a subtransaction is started and then aborted within execution
   of a SPI procedure, SPI automatically frees any row sets created while
   the subtransaction was running.
  
   Beginning in PostgreSQL 9.3,
   SPI_freetuptable contains guard logic to protect
   against duplicate deletion requests for the same row set.  In previous
   releases, duplicate deletions would lead to crashes.