Re: [COMMITTERS] pgsql: Simplify plpgsql's check for simple expressions.
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-08-16T15:22:29Z
Lists: pgsql-hackers
On Wed, Aug 16, 2017 at 11:03 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >> On Tue, Aug 15, 2017 at 6:40 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> (In fact, a quick look shows a counterexample: if we pick a MinMaxAgg >>> path, that's parallel unsafe, but the original query might've been >>> completely safe.) > >> I'm quite confused here. What's parallel-unsafe about a MinMaxAgg? >> There might be some reason why it's parallel-restricted, but it >> shouldn't be parallel-unsafe. > > Well, it has subplans, so formally I think it's restricted not unsafe > --- but the parallel_safe marking on constructed paths/plans is only > safe/not-safe, not a three-way. True, but when parallel_safe it not set, that means it's not parallel-safe, so either parallel-restricted or parallel-unsafe. But if parallelModeOK is true, then it had better be parallel-restricted, not parallel-unsafe. Which in turn means that it had better be perfectly safe to run the plan under EnterParallelMode()/ExitParallelMode(). If it's not, then <original query> UNION ALL <something that makes a Gather> would blow up. So I still don't see what's wrong here, other than that the comment is evidently not half clear enough. I don't think this is the first time we've been over all this. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Attempt to clarify comments related to force_parallel_mode.
- 1e56883a528e 11.0 landed
-
Make simpler-simple-expressions code cope with a Gather plan.
- b73f1b5c29e0 11.0 landed
-
Simplify plpgsql's check for simple expressions.
- 00418c612441 11.0 cited