]> granicus.if.org Git - postgresql/commit
Fix error handling in PLy_spi_execute_fetch_result().
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 20 Jul 2013 16:44:37 +0000 (12:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 20 Jul 2013 16:44:37 +0000 (12:44 -0400)
commitb3b10c39038c20457ef058c7f4e5589c28a84f1c
treef9a3c7627594eb57f08b8a8b8e125f0dfa2b59b4
parentff41a5de0995f01a98b6fbc3a0c774b9a53e609a
Fix error handling in PLy_spi_execute_fetch_result().

If an error is thrown out of the datatype I/O functions called by this
function, we need to do subtransaction cleanup, which the previous coding
entirely failed to do.  Fortunately, both existing callers of this function
already have proper cleanup logic, so re-throwing the exception is enough.

Also, postpone creation of the resultset tupdesc until after the I/O
conversions are complete, so that we won't leak memory in TopMemoryContext
when such an error happens.
src/pl/plpython/plpy_spi.c