Remove partColsUpdated.
authorNathan Bossart <nathan@postgresql.org>
Thu, 16 Oct 2025 16:31:38 +0000 (11:31 -0500)
committerNathan Bossart <nathan@postgresql.org>
Thu, 16 Oct 2025 16:31:38 +0000 (11:31 -0500)
This information appears to have been unused since commit
c5b7ba4e67.  We could not find any references in third-party code,
either.

Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/aO_CyFRpbVMtgJWM%40nathan

src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/util/inherit.c
src/backend/optimizer/util/pathnode.c
src/include/nodes/pathnodes.h
src/include/nodes/plannodes.h
src/include/optimizer/pathnode.h

index c9dba7ff3462c71862bd199ad8f3f306b0965828..63fe663715565b471b145e6f5425f5bd221b4b91 100644 (file)
@@ -311,7 +311,6 @@ static ProjectSet *make_project_set(List *tlist, Plan *subplan);
 static ModifyTable *make_modifytable(PlannerInfo *root, Plan *subplan,
                                     CmdType operation, bool canSetTag,
                                     Index nominalRelation, Index rootRelation,
-                                    bool partColsUpdated,
                                     List *resultRelations,
                                     List *updateColnosLists,
                                     List *withCheckOptionLists, List *returningLists,
@@ -2676,7 +2675,6 @@ create_modifytable_plan(PlannerInfo *root, ModifyTablePath *best_path)
                            best_path->canSetTag,
                            best_path->nominalRelation,
                            best_path->rootRelation,
-                           best_path->partColsUpdated,
                            best_path->resultRelations,
                            best_path->updateColnosLists,
                            best_path->withCheckOptionLists,
@@ -7010,7 +7008,6 @@ static ModifyTable *
 make_modifytable(PlannerInfo *root, Plan *subplan,
                 CmdType operation, bool canSetTag,
                 Index nominalRelation, Index rootRelation,
-                bool partColsUpdated,
                 List *resultRelations,
                 List *updateColnosLists,
                 List *withCheckOptionLists, List *returningLists,
@@ -7047,7 +7044,6 @@ make_modifytable(PlannerInfo *root, Plan *subplan,
    node->canSetTag = canSetTag;
    node->nominalRelation = nominalRelation;
    node->rootRelation = rootRelation;
-   node->partColsUpdated = partColsUpdated;
    node->resultRelations = resultRelations;
    if (!onconflict)
    {
index e8ea78c0c977258f2c5f2619f8743480ddad64bd..342d782c74b6d68d8ae6186bb2938eec10f04547 100644 (file)
@@ -744,7 +744,6 @@ subquery_planner(PlannerGlobal *glob, Query *parse, char *plan_name,
    else
        root->wt_param_id = -1;
    root->non_recursive_path = NULL;
-   root->partColsUpdated = false;
 
    /*
     * Create the top-level join domain.  This won't have valid contents until
@@ -2127,7 +2126,6 @@ grouping_planner(PlannerInfo *root, double tuple_fraction,
                                        parse->canSetTag,
                                        parse->resultRelation,
                                        rootRelation,
-                                       root->partColsUpdated,
                                        resultRelations,
                                        updateColnosLists,
                                        withCheckOptionLists,
index 856d5959d1031053209306d28c557e7bce47faea..6d5225079f87cd0d4524f8c20f58c443370f991d 100644 (file)
@@ -335,16 +335,6 @@ expand_partitioned_rtentry(PlannerInfo *root, RelOptInfo *relinfo,
    /* A partitioned table should always have a partition descriptor. */
    Assert(partdesc);
 
-   /*
-    * Note down whether any partition key cols are being updated. Though it's
-    * the root partitioned table's updatedCols we are interested in,
-    * parent_updatedCols provided by the caller contains the root partrel's
-    * updatedCols translated to match the attribute ordering of parentrel.
-    */
-   if (!root->partColsUpdated)
-       root->partColsUpdated =
-           has_partition_attrs(parentrel, parent_updatedCols, NULL);
-
    /* Nothing further to do here if there are no partitions. */
    if (partdesc->nparts == 0)
        return;
index bca51b4067b956efa780d488ef09b4022dc879cd..44ac5312edda4d89698dfe9fdc26a745cbc168de 100644 (file)
@@ -3612,8 +3612,6 @@ create_lockrows_path(PlannerInfo *root, RelOptInfo *rel,
  * 'canSetTag' is true if we set the command tag/es_processed
  * 'nominalRelation' is the parent RT index for use of EXPLAIN
  * 'rootRelation' is the partitioned/inherited table root RTI, or 0 if none
- * 'partColsUpdated' is true if any partitioning columns are being updated,
- *     either from the target relation or a descendent partitioned table.
  * 'resultRelations' is an integer list of actual RT indexes of target rel(s)
  * 'updateColnosLists' is a list of UPDATE target column number lists
  *     (one sublist per rel); or NIL if not an UPDATE
@@ -3630,7 +3628,6 @@ create_modifytable_path(PlannerInfo *root, RelOptInfo *rel,
                        Path *subpath,
                        CmdType operation, bool canSetTag,
                        Index nominalRelation, Index rootRelation,
-                       bool partColsUpdated,
                        List *resultRelations,
                        List *updateColnosLists,
                        List *withCheckOptionLists, List *returningLists,
@@ -3696,7 +3693,6 @@ create_modifytable_path(PlannerInfo *root, RelOptInfo *rel,
    pathnode->canSetTag = canSetTag;
    pathnode->nominalRelation = nominalRelation;
    pathnode->rootRelation = rootRelation;
-   pathnode->partColsUpdated = partColsUpdated;
    pathnode->resultRelations = resultRelations;
    pathnode->updateColnosLists = updateColnosLists;
    pathnode->withCheckOptionLists = withCheckOptionLists;
index 01dbbca275340cde705650704a9cf193638b0704..30d889b54c53c7da707db19c384a7ebed9fdcacf 100644 (file)
@@ -593,9 +593,6 @@ struct PlannerInfo
    bool       *isAltSubplan pg_node_attr(read_write_ignore);
    bool       *isUsedSubplan pg_node_attr(read_write_ignore);
 
-   /* Does this query modify any partition key columns? */
-   bool        partColsUpdated;
-
    /* PartitionPruneInfos added in this query's plan. */
    List       *partPruneInfos;
 
@@ -2609,7 +2606,6 @@ typedef struct ModifyTablePath
    bool        canSetTag;      /* do we set the command tag/es_processed? */
    Index       nominalRelation;    /* Parent RT index for use of EXPLAIN */
    Index       rootRelation;   /* Root RT index, if partitioned/inherited */
-   bool        partColsUpdated;    /* some part key in hierarchy updated? */
    List       *resultRelations;    /* integer list of RT indexes */
    List       *updateColnosLists;  /* per-target-table update_colnos lists */
    List       *withCheckOptionLists;   /* per-target-table WCO lists */
index 77ec2bc10b292814228c03ce68bdfec989d7e7a6..7cdd2b51c94e16d8101f670f78fce5368a84c4e2 100644 (file)
@@ -338,8 +338,6 @@ typedef struct ModifyTable
    Index       nominalRelation;
    /* Root RT index, if partitioned/inherited */
    Index       rootRelation;
-   /* some part key in hierarchy updated? */
-   bool        partColsUpdated;
    /* integer list of RT indexes */
    List       *resultRelations;
    /* per-target-table update_colnos lists */
index da60383c2aa449c7aa9c129243ab88ec82a0add2..955e905685830da18549784b1911c59e4b370cd0 100644 (file)
@@ -281,7 +281,6 @@ extern ModifyTablePath *create_modifytable_path(PlannerInfo *root,
                                                Path *subpath,
                                                CmdType operation, bool canSetTag,
                                                Index nominalRelation, Index rootRelation,
-                                               bool partColsUpdated,
                                                List *resultRelations,
                                                List *updateColnosLists,
                                                List *withCheckOptionLists, List *returningLists,