pgsql: Mark more functions parallel-restricted or parallel-unsafe. - Mailing list pgsql-committers

From Robert Haas
Subject pgsql: Mark more functions parallel-restricted or parallel-unsafe.
Date
Msg-id E1Zn7IO-0001jv-P4@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Mark more functions parallel-restricted or parallel-unsafe.

Commit 7aea8e4f2daa4b39ca9d1309a0c4aadb0f7ed81b 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.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/816e336f12ecabdc834d4cc31bcf966b2dd323dc

Modified Files
--------------
src/backend/commands/async.c     |    3 +++
src/include/catalog/catversion.h |    2 +-
src/include/catalog/pg_proc.h    |   40 +++++++++++++++++++-------------------
3 files changed, 24 insertions(+), 21 deletions(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: pgsql: Fix a problem with parallel workers being unable to restore role
Next
From: Robert Haas
Date:
Subject: pgsql: Rewrite interaction of parallel mode with parallel executor supp