Re: generic plans and "initial" pruning
Amit Langote <amitlangote09@gmail.com>
Attachments
- v47-0005-Add-field-to-store-parent-relids-to-Append-Merge.patch (application/octet-stream) patch v47-0005
- v47-0006-Set-inFromCl-to-false-in-child-table-RTEs.patch (application/octet-stream) patch v47-0006
- v47-0008-Track-opened-range-table-relations-in-a-List-in-.patch (application/octet-stream) patch v47-0008
- v47-0007-Delay-locking-of-child-tables-in-cached-plans-un.patch (application/octet-stream) patch v47-0007
- v47-0004-Adjustments-to-allow-ExecutorStart-to-sometimes-.patch (application/octet-stream) patch v47-0004
- v47-0003-Support-for-ExecInitNode-to-detect-CachedPlan-in.patch (application/octet-stream) patch v47-0003
- v47-0002-Check-pointer-NULLness-before-cleanup-in-ExecEnd.patch (application/octet-stream) patch v47-0002
- v47-0001-Remove-obsolete-executor-cleanup-code.patch (application/octet-stream) patch v47-0001
On Tue, Sep 5, 2023 at 11:41 PM Robert Haas <robertmhaas@gmail.com> wrote: > On Tue, Sep 5, 2023 at 3:13 AM Amit Langote <amitlangote09@gmail.com> wrote: > > Attached 0001 removes unnecessary cleanup calls from ExecEnd*() routines. > > It also adds a few random Assert()s to verify that unrelated pointers > are not NULL. I suggest that it shouldn't do that. OK, removed. > The commit message doesn't mention the removal of the calls to > ExecDropSingleTupleTableSlot. It's not clear to me why that's OK and I > think it would be nice to mention it in the commit message, assuming > that it is in fact OK. That is not OK, so I dropped their removal. I think I confused them with slots in other functions initialized with ExecInitExtraTupleSlot() that *are* put into the estate. > I suggest changing the subject line of the commit to something like > "Remove obsolete executor cleanup code." Sure. > > 0002 adds NULLness checks in ExecEnd*() routines on some pointers that > > may not be initialized by the corresponding ExecInit*() routines in > > the case where it returns early. > > I think you should only add these where it's needed. For example, I > think list_free_deep(NIL) is fine. OK, done. > The changes to ExecEndForeignScan look like they include stuff that > belongs in 0001. Oops, yes. Moved to 0001. > Personally, I prefer explicit NULL-tests i.e. if (x != NULL) to > implicit ones like if (x), but opinions vary. I agree, so changed all the new tests to use (x != NULL) form. Typically, I try to stick with whatever style is used in the nearby code, though I can see both styles being used in the ExecEnd*() routines. I opted to use the style that we both happen to prefer. Attached updated patches. Thanks for the review. -- Thanks, Amit Langote EDB: http://www.enterprisedb.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