pgsql: Rewrite interaction of parallel mode with parallel executor supp

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Rewrite interaction of parallel mode with parallel executor supp
Date: 2015-10-16 15:56:41
Message-ID: E1Zn7N3-0001pS-28@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Rewrite interaction of parallel mode with parallel executor support.

In the previous coding, before returning from ExecutorRun, we'd shut
down all parallel workers. This was dead wrong if ExecutorRun was
called with a non-zero tuple count; it had the effect of truncating
the query output. To fix, give ExecutePlan control over whether to
enter parallel mode, and have it refuse to do so if the tuple count
is non-zero. Rewrite the Gather logic so that it can cope with being
called outside parallel mode.

Commit 7aea8e4f2daa4b39ca9d1309a0c4aadb0f7ed81b is largely to blame
for this problem, though this patch modifies some subsequently-committed
code which relied on the guarantees it purported to make.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/bfc78d7196eb28cd4e3d6c24f7e607bacecf1129

Modified Files
--------------
src/backend/executor/execMain.c | 37 +++++++-----
src/backend/executor/execParallel.c | 17 ++++++
src/backend/executor/nodeGather.c | 108 +++++++++++++++++------------------
src/include/executor/execParallel.h | 1 +
src/include/nodes/execnodes.h | 2 +-
5 files changed, 95 insertions(+), 70 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2015-10-16 16:03:24 pgsql: Prohibit parallel query when the isolation level is serializable
Previous Message Robert Haas 2015-10-16 15:51:52 pgsql: Mark more functions parallel-restricted or parallel-unsafe.