Savepoints and SPI - Mailing list pgsql-hackers

From Thomas Hallgren
Subject Savepoints and SPI
Date
Msg-id 42387C8D.8050103@mailblocks.com
Whole thread Raw
Responses Re: Savepoints and SPI
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: contrib/pg_buffercache
Next
From: Alvaro Herrera
Date:
Subject: Re: Savepoints and SPI