Re: generic plans and "initial" pruning
Amit Langote <amitlangote09@gmail.com>
Attachments
- v21-0001-Move-PartitioPruneInfo-out-of-plan-nodes-into-Pl.patch (application/octet-stream) patch v21-0001
- v21-0003-Optimize-AcquireExecutorLocks-by-locking-only-un.patch (application/octet-stream) patch v21-0003
- v21-0002-Allow-adding-Bitmapsets-as-Nodes-into-plan-trees.patch (application/octet-stream) patch v21-0002
On Fri, Jul 29, 2022 at 1:20 PM Amit Langote <amitlangote09@gmail.com> wrote: > On Thu, Jul 28, 2022 at 1:27 AM Robert Haas <robertmhaas@gmail.com> wrote: > > 0001 adds es_part_prune_result but does not use it, so maybe the > > introduction of that field should be deferred until it's needed for > > something. > > Oops, looks like a mistake when breaking the patch. Will move that bit to 0002. Fixed that and also noticed that I had defined PartitionPruneResult in the wrong header (execnodes.h). That led to PartitionPruneResult nodes not being able to be written and read, because src/backend/nodes/gen_node_support.pl doesn't create _out* and _read* routines for the nodes defined in execnodes.h. I moved its definition to plannodes.h, even though it is not actually the planner that instantiates those; no other include/nodes header sounds better. One more thing I realized is that Bitmapsets added to the List PartitionPruneResult.valid_subplan_offs_list are not actually read/write-able. That's a problem that I also faced in [1], so I proposed a patch there to make Bitmapset a read/write-able Node and mark (only) the Bitmapsets that are added into read/write-able node trees with the corresponding NodeTag. I'm including that patch here as well (0002) for the main patch to work (pass -DWRITE_READ_PARSE_PLAN_TREES build tests), though it might make sense to discuss it in its own thread? -- Thanks, Amit Langote EDB: http://www.enterprisedb.com [1] https://www.postgresql.org/message-id/CA%2BHiwqH80qX1ZLx3HyHmBrOzLQeuKuGx6FzGep0F_9zw9L4PAA%40mail.gmail.com
Commits
-
Stamp 19beta1.
- 4b0bf0788b06 19 (unreleased) cited
-
Revert "Don't lock partitions pruned by initial pruning"
- 1722d5eb05d8 18.0 landed
-
Ensure first ModifyTable rel initialized if all are pruned
- 28317de723b6 18.0 cited
-
Fix bug in cbc127917 to handle nested Append correctly
- cbb9086c9ef6 18.0 landed
-
Remove unstable test suite added by 525392d57
- 4f1b6e5bb4fe 18.0 landed
-
Don't lock partitions pruned by initial pruning
- 525392d5727f 18.0 landed
-
Fix an oversight in cbc127917 to handle MERGE correctly
- 75dfde13639a 18.0 landed
-
Track unpruned relids to avoid processing pruned relations
- cbc127917e04 18.0 landed
-
Perform runtime initial pruning outside ExecInitNode()
- d47cbf474ecb 18.0 landed
-
Move PartitionPruneInfo out of plan nodes into PlannedStmt
- bb3ec16e14de 18.0 landed
-
Fix setrefs.c's failure to do expression processing on prune steps.
- bf826ea06297 18.0 cited
-
Remove obsolete executor cleanup code
- d060e921ea5a 17.0 landed
-
Revert "Move PartitionPruneInfo out of plan nodes into PlannedStmt"
- 5472743d9e85 16.0 landed
-
Move PartitioPruneInfo out of plan nodes into PlannedStmt
- ec386948948c 16.0 landed
-
Refactor and cleanup runtime partition prune code a little
- 297daa9d4353 15.0 landed
-
Remove some unnecessary fields from Plan trees.
- 52ed730d511b 12.0 cited
-
Remove more redundant relation locking during executor startup.
- f2343653f5b2 12.0 cited
-
Shut down Gather's children before shutting down Gather itself.
- acf555bc53ac 10.0 cited