]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add explicit initialization for all PlannerGlobal fields
authorRichard Guo <rguo@postgresql.org>
Wed, 14 May 2025 00:59:31 +0000 (09:59 +0900)
committerRichard Guo <rguo@postgresql.org>
Wed, 14 May 2025 00:59:31 +0000 (09:59 +0900)
When creating a new PlannerGlobal node in standard_planner(), most
fields are explicitly initialized, but a few are not.  This doesn't
cause any functional issues, as makeNode() zeroes all fields by
default.  However, the inconsistency is undesirable from a clarity and
maintenance perspective.

This patch explicitly initializes the remaining fields to improve
consistency and readability.

Author: Richard Guo <guofenglinux@gmail.com>
Reviewed-by: David Rowley <dgrowleyml@gmail.com>
Discussion: https://postgr.es/m/CAMbWs4-TgQHNOiouqGcuHoBqbJjWyx4UxGKxUY3FrF4trGbcPA@mail.gmail.com

src/backend/optimizer/plan/planner.c

index beafac8c0b04e8a27c074eb928605c63717c96fe..49ad6e835782fd87e6a7fdacd4633433c9f6955b 100644 (file)
@@ -326,10 +326,14 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions,
        glob->subroots = NIL;
        glob->rewindPlanIDs = NULL;
        glob->finalrtable = NIL;
+       glob->allRelids = NULL;
+       glob->prunableRelids = NULL;
        glob->finalrteperminfos = NIL;
        glob->finalrowmarks = NIL;
        glob->resultRelations = NIL;
+       glob->firstResultRels = NIL;
        glob->appendRelations = NIL;
+       glob->partPruneInfos = NIL;
        glob->relationOids = NIL;
        glob->invalItems = NIL;
        glob->paramExecTypes = NIL;
@@ -338,6 +342,7 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions,
        glob->lastPlanNodeId = 0;
        glob->transientPlan = false;
        glob->dependsOnRole = false;
+       glob->partition_directory = NULL;
 
        /*
         * Assess whether it's feasible to use parallel mode for this query. We