For nested SPI case, one option is to turn off the bool variable when entering the SPI function(PLy_spi_prepare, PLy_spi_execute, PLy_cursor etc.) and turn on the bool variable again when exiting the SPI function. If it's OK, we could follow this way to update Heikki's patch.
--Hubert On Fri, May 11, 2018 at 9:28 PM, Heikki Linnakangas <hlinn...@iki.fi> wrote: > > > On 11 May 2018 10:01:56 EEST, Hubert Zhang <hzh...@pivotal.io> wrote: > >2. Add a flag in hook function to indicate whether to call > >Py_AddPendingCall. > >This is straightforward.(I prefer it) > > Yeah, that's what I had in mind, too. A global bool variable that's set > when you enter libpython, and cleared on return. Need to handle nesting, > i.e if a PL/python function runs a slow query with SPI, and cancellation > happens during that. And the case that the SPI query calls another > PL/python function. > > - Heikki > -- Thanks Hubert Zhang