pgsql: Don't generate parallel paths for rels with parallel-restricted

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Don't generate parallel paths for rels with parallel-restricted
Date: 2016-06-09 16:43:49
Message-ID: E1bB33d-0003Gv-VZ@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Don't generate parallel paths for rels with parallel-restricted outputs.

Such paths are unsafe. To make it cheaper to detect when this case
applies, track whether a relation's default PathTarget contains any
non-Vars. In most cases, the answer will be no, which enables us to
determine cheaply that the target list for a proposed path is
parallel-safe. However, subquery pull-up can create cases that
require us to inspect the target list more carefully.

Amit Kapila, reviewed by me.

Branch
------
master

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

Modified Files
--------------
src/backend/nodes/outfuncs.c | 1 +
src/backend/optimizer/path/allpaths.c | 10 ++++++++++
src/backend/optimizer/util/placeholder.c | 2 ++
src/backend/optimizer/util/relnode.c | 10 +++++++---
src/include/nodes/relation.h | 2 ++
5 files changed, 22 insertions(+), 3 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-06-09 17:02:09 Re: pgsql: Don't generate parallel paths for rels with parallel-restricted
Previous Message Robert Haas 2016-06-09 16:16:29 pgsql: Yet again update typedefs.list file in preparation for pgindent

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2016-06-09 16:44:47 Re: [sqlsmith] Failed assertion in parallel worker (ExecInitSubPlan)
Previous Message Andres Freund 2016-06-09 16:18:23 Re: Reviewing freeze map code