Tom Lane wrote: > Bruce Momjian <[EMAIL PROTECTED]> writes: > > Bruce Momjian wrote: > >> When we get the termination signal, why can't we just set a global > >> boolean, do a query cancel, and in the setjmp() code block check the > >> global and exit --- at that stage we know we have released all locks and > >> can exit cleanly. > > > Should I add this as a TODO? Seems so. Tom commented in the patches > > queue that it will not work but I don't understand why. > > The problem with treating it like elog(ERROR) is that you're at the > mercy of user-defined code as to whether you'll actually exit or not. > UDFs can trap elog(ERROR).
Well, we can punt and blame the writer of the UDF if the signal is not timely honored. Having something that works for 98% of the cases, can be fixed for 1% of the remainder, and only fails in 1% (proprietary code that cannot be fixed) is better than having nothing at all. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers