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

Robert Haas <rhaas@postgresql.org>

Commit: b12fd41c695b43c76b0a9a4d19ba43b05536440c
Author: Robert Haas <rhaas@postgresql.org>
Date: 2016-06-09T16:43:36Z
Releases: 9.6.0
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.

Files