Re: Savepoints and SPI
От | Thomas Hallgren |
---|---|
Тема | Re: Savepoints and SPI |
Дата | |
Msg-id | 423974FD.4050609@mailblocks.com обсуждение исходный текст |
Ответ на | Re: Savepoints and SPI (Alvaro Herrera <alvherre@dcc.uchile.cl>) |
Список | pgsql-hackers |
Alvaro Herrera wrote: >On Wed, Mar 16, 2005 at 07:35:57PM +0100, Thomas Hallgren wrote: > > >>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? >> >> > >I'd expect the code to close an SPI connection that is opened inside the >savepoint, but if you open it before setting the savepoint then it >should remain open. > > That doesn't seem to be what happens. ISTM that the AtEOSubXact_SPI will do this always: _SPI_connected--; _SPI_curid = _SPI_connected; which in essence puts SPI in an unconnected state regardless of what the values where before on the _SPI_connected and _SPI_curid. Regards, Thomas Hallgren
В списке pgsql-hackers по дате отправления: