I have some test code that utilize SPI and does the following:
1. SPI_connect 2. set a savepoint (using BeginInternalSubTransaction) 3. execute a statement that contains a syntax error (within PG_TRY/PG_CATCH) 4. rollback to the savepoint (RollbackAndReleaseCurrentSubTransaction) 5. execute some other statement.
it errors out in step 5 with SPI_ERROR_UNCONNECTED. It seems that step 3, when it encounters an error, automatically executes a SPI_finish. Is that the desired behavior?
Should I assume that _all_ errors will act this way, i.e. should I assume that if I end up in a PG_CATCH() that my SPI has been disconnected always?
Regards, Thomas Hallgren
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend