Re: Proposed refactoring of planner header files
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-01-28T20:33:10Z
Lists: pgsql-hackers
On Mon, Jan 28, 2019 at 3:17 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > I'm really unhappy that force_parallel_mode and > parallel_leader_participation are being treated as planner GUCs. > They are not that, IMO, because they also affect the behavior of > the executor, cf HandleParallelMessage, ExecGather, ExecGatherMerge. > This is somewhere between ill-considered and outright broken: what > happens if the values change between planning and execution? The only use of parallel_leader_participation at plan time seems to be to twiddle the costing, and the use of it in the executor is to decide whether to have the leader participate. So if the values differ, you'll get a plan running a behavior for which plan selection was not optimized. I don't know whether it's useful to intentionally allow this so that you can see how the same plan behaves under the other setting, or whether it's just a wart we'd be better off without. It might be confusing, though, if you change the setting and it doesn't force a replan. Similarly, the use of force_parallel_mode in HandleParallelMessage() really just affects what CONTEXT lines you get. That may be ill-considered but it doesn't seem outright broken. Here again, I'm not really sure that forcibly preserving the plan-time value at execution time would really result in happier users. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Refactor index cost estimation functions in view of IndexClause changes.
- e89f14e2bb9f 12.0 landed
-
Simplify the planner's new representation of indexable clauses a little.
- 8fd3fdd85a3e 12.0 landed
-
Move pattern selectivity code from selfuncs.c to like_support.c.
- 49fa99e54ec0 12.0 landed
-
Refactor planner's header files.
- f09346a9c621 12.0 landed
-
Make some small planner API cleanups.
- a1b8c41e990e 12.0 landed