Nathan, 

I just ran across this change when a bunch of CI’s I run barfed. 

https://github.com/postgres/postgres/commit/d4a43b283751b23d32bbfa1ecc2cad2d16e3dde9

The problem we are having in extension land is that we often run functions in 
external libraries that take a long time to return, and we would like to ensure 
that PgSQL users can cancel their queries, even when control has passed into 
those functions.

The way we have done it, historically, has been to take the return value of 
pqsignal(SIGINT, extension_signint_handler) and remember it, and then, inside 
extension_signint_handler, call the pgsql handler once we have done our own 
business. 

https://github.com/pramsey/pgsql-http/blob/master/http.c#L345

It is possible we have been Doing It Wrong all this time, and would love some 
pointers on the right way to do this.

Alternatively, if we have a valid use case, it would be nice to have the return 
value from pqsignal() back.

Thanks!

Paul 

Reply via email to