• Robert Haas's avatar
    Mark more functions parallel-restricted or parallel-unsafe. · 816e336f
    Robert Haas authored
    Commit 7aea8e4f was overoptimistic
    about the degree of safety associated with running various functions
    in parallel mode.  Functions that take a table name or OID as an
    argument are at least parallel-restricted, because the table might be
    temporary, and we currently don't allow parallel workers to touch
    temporary tables.  Functions that take a query as an argument are
    outright unsafe, because the query could be anything, including a
    parallel-unsafe query.
    
    Also, the queue of pending notifications is backend-private, so adding
    to it from a worker doesn't behave correctly.  We could fix this by
    transferring the worker's queue of pending notifications to the master
    during worker cleanup, but that seems like more trouble than it's
    worth for now.  In addition to adjusting the pg_proc.h markings, also
    add an explicit check for this in async.c.
    816e336f
catversion.h 2.53 KB