Re: Allowing parallel-safe initplans
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-04-13T08:23:06Z
Lists: pgsql-hackers
On Thu, Apr 13, 2023 at 12:43 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Pursuant to the discussion at [1], here's a patch that removes our > old restriction that a plan node having initPlans can't be marked > parallel-safe (dating to commit ab77a5a45). That was really a special > case of the fact that we couldn't transmit subplans to parallel > workers at all. We fixed that in commit 5e6d8d2bb and follow-ons, > but this case never got addressed. The patch looks good to me. Some comments from me: * For the diff in standard_planner, I was wondering why not move the initPlans up to the Gather node, just as we did before. So I tried that way but did not notice the breakage of regression tests as stated in the comments. Would you please confirm that? * Not related to this patch. In SS_make_initplan_from_plan, the comment says that the node's parParam and args lists remain empty. I wonder if we need to explicitly set node->parParam and node->args to NIL before that comment, or can we depend on makeNode to initialize them to NIL? > There's only one existing test case that visibly changes plan with > these changes. The new plan is clearly saner-looking than before, > and testing with some data loaded into the table confirms that it > is faster. I'm not sure if it's worth devising more test cases. I also think it's better to have more test cases covering this change. Thanks Richard
Commits
-
Account for optimized MinMax aggregates during SS_finalize_plan.
- ce0d1654463e 16.4 landed
- 7f90a5dc3686 13.16 landed
- 686c995fc222 12.20 landed
- 5ac340602e74 14.13 landed
- 4ac385adc5b7 15.8 landed
- d0d44049d126 17.0 landed
-
Add test case showing that commit d0d44049d fixed a live bug.
- 779ac2c74bd1 17.0 landed
-
Allow plan nodes with initPlans to be considered parallel-safe.
- e08d74ca1342 17.0 landed
-
Allow parallel workers to execute subplans.
- 5e6d8d2bbbca 10.0 cited
-
Mark a query's topmost Paths parallel-unsafe if they will have initPlans.
- ab77a5a4561f 10.0 cited