• Alvaro Herrera's avatar
    Have pg_terminate/cancel_backend not ERROR on non-existent processes · ae90ffad
    Alvaro Herrera authored
    This worked fine for superusers, but not for ordinary users trying to
    cancel their own processes.  Tweak the order the checks are done in so
    that we correctly return SIGNAL_BACKEND_ERROR (which current callers
    know to ignore without erroring out) so that an ordinary user can loop
    through a resultset without fearing that a process might exit in the
    middle of said looping -- causing the remaining processes to go
    unsignalled.
    
    Incidentally, the last in-core caller of IsBackendPid() is now gone.
    However, the function is exported and must remain in place, because
    there are plenty of callers in external modules.
    
    Author: Josh Kupershmidt
    
    Reviewed by Noah Misch
    ae90ffad
misc.c 13.1 KB