Reformat node comments in plannodes.h
authorMichael Paquier
Mon, 10 Feb 2025 00:58:25 +0000 (09:58 +0900)
committerMichael Paquier
Mon, 10 Feb 2025 00:58:25 +0000 (09:58 +0900)
This is similar to d575051b9af9 but this time for the comments in
plannodes.h to avoid long lines, which is useful if adding per-field
annotations with pg_node_attr() to these planner structures.

Some patches are under discussion to add such properties to planner
fields, which is something that may or may not happen, and this change
makes future proposals easier to work on and review, which being more
consistent in style with the parse nodes.

Author: Sami Imseih
Discussion: https://postgr.es/m/[email protected]

src/include/nodes/plannodes.h

index 2a2cf816cb6e79854cb179e8301b24d8de2cd81c..67e4040a70ff409fbb5083bd1b5c9a8ae98648ee 100644 (file)
@@ -49,61 +49,90 @@ typedef struct PlannedStmt
 
    NodeTag     type;
 
-   CmdType     commandType;    /* select|insert|update|delete|merge|utility */
+   /* select|insert|update|delete|merge|utility */
+   CmdType     commandType;
 
-   uint64      queryId;        /* query identifier (copied from Query) */
+   /* query identifier (copied from Query) */
+   uint64      queryId;
 
-   bool        hasReturning;   /* is it insert|update|delete|merge RETURNING? */
+   /* is it insert|update|delete|merge RETURNING? */
+   bool        hasReturning;
 
-   bool        hasModifyingCTE;    /* has insert|update|delete|merge in WITH? */
+   /* has insert|update|delete|merge in WITH? */
+   bool        hasModifyingCTE;
 
-   bool        canSetTag;      /* do I set the command result tag? */
+   /* do I set the command result tag? */
+   bool        canSetTag;
 
-   bool        transientPlan;  /* redo plan when TransactionXmin changes? */
+   /* redo plan when TransactionXmin changes? */
+   bool        transientPlan;
 
-   bool        dependsOnRole;  /* is plan specific to current role? */
+   /* is plan specific to current role? */
+   bool        dependsOnRole;
 
-   bool        parallelModeNeeded; /* parallel mode required to execute? */
+   /* parallel mode required to execute? */
+   bool        parallelModeNeeded;
 
-   int         jitFlags;       /* which forms of JIT should be performed */
+   /* which forms of JIT should be performed */
+   int         jitFlags;
 
-   struct Plan *planTree;      /* tree of Plan nodes */
+   /* tree of Plan nodes */
+   struct Plan *planTree;
 
-   List       *partPruneInfos; /* List of PartitionPruneInfo contained in the
-                                * plan */
+   /*
+    * List of PartitionPruneInfo contained in the plan
+    */
+   List       *partPruneInfos;
 
-   List       *rtable;         /* list of RangeTblEntry nodes */
+   /* list of RangeTblEntry nodes */
+   List       *rtable;
 
-   Bitmapset  *unprunableRelids;   /* RT indexes of relations that are not
-                                    * subject to runtime pruning or are
-                                    * needed to perform runtime pruning */
+   /*
+    * RT indexes of relations that are not subject to runtime pruning or are
+    * needed to perform runtime pruning
+    */
+   Bitmapset  *unprunableRelids;
 
-   List       *permInfos;      /* list of RTEPermissionInfo nodes for rtable
-                                * entries needing one */
+   /*
+    * list of RTEPermissionInfo nodes for rtable entries needing one
+    */
+   List       *permInfos;
 
    /* rtable indexes of target relations for INSERT/UPDATE/DELETE/MERGE */
-   List       *resultRelations;    /* integer list of RT indexes, or NIL */
+   /* integer list of RT indexes, or NIL */
+   List       *resultRelations;
 
-   List       *appendRelations;    /* list of AppendRelInfo nodes */
+   /* list of AppendRelInfo nodes */
+   List       *appendRelations;
 
-   List       *subplans;       /* Plan trees for SubPlan expressions; note
-                                * that some could be NULL */
+   /*
+    * Plan trees for SubPlan expressions; note that some could be NULL
+    */
+   List       *subplans;
 
-   Bitmapset  *rewindPlanIDs;  /* indices of subplans that require REWIND */
+/* indices of subplans that require REWIND */
+   Bitmapset  *rewindPlanIDs;
 
-   List       *rowMarks;       /* a list of PlanRowMark's */
+   /* a list of PlanRowMark's */
+   List       *rowMarks;
 
-   List       *relationOids;   /* OIDs of relations the plan depends on */
+   /* OIDs of relations the plan depends on */
+   List       *relationOids;
 
-   List       *invalItems;     /* other dependencies, as PlanInvalItems */
+   /* other dependencies, as PlanInvalItems */
+   List       *invalItems;
 
-   List       *paramExecTypes; /* type OIDs for PARAM_EXEC Params */
+   /* type OIDs for PARAM_EXEC Params */
+   List       *paramExecTypes;
 
-   Node       *utilityStmt;    /* non-null if this is utility stmt */
+   /* non-null if this is utility stmt */
+   Node       *utilityStmt;
 
    /* statement location in source string (copied from Query) */
-   ParseLoc    stmt_location;  /* start location, or -1 if unknown */
-   ParseLoc    stmt_len;       /* length in bytes; 0 means "rest of string" */
+   /* start location, or -1 if unknown */
+   ParseLoc    stmt_location;
+   /* length in bytes; 0 means "rest of string" */
+   ParseLoc    stmt_len;
 } PlannedStmt;
 
 /* macro for fetching the Plan associated with a SubPlan node */
@@ -132,37 +161,49 @@ typedef struct Plan
    /*
     * estimated execution costs for plan (see costsize.c for more info)
     */
-   int         disabled_nodes; /* count of disabled nodes */
-   Cost        startup_cost;   /* cost expended before fetching any tuples */
-   Cost        total_cost;     /* total cost (assuming all tuples fetched) */
+   /* count of disabled nodes */
+   int         disabled_nodes;
+   /* cost expended before fetching any tuples */
+   Cost        startup_cost;
+   /* total cost (assuming all tuples fetched) */
+   Cost        total_cost;
 
    /*
     * planner's estimate of result size of this plan step
     */
-   Cardinality plan_rows;      /* number of rows plan is expected to emit */
-   int         plan_width;     /* average row width in bytes */
+   /* number of rows plan is expected to emit */
+   Cardinality plan_rows;
+   /* average row width in bytes */
+   int         plan_width;
 
    /*
     * information needed for parallel query
     */
-   bool        parallel_aware; /* engage parallel-aware logic? */
-   bool        parallel_safe;  /* OK to use as part of parallel plan? */
+   /* engage parallel-aware logic? */
+   bool        parallel_aware;
+   /* OK to use as part of parallel plan? */
+   bool        parallel_safe;
 
    /*
     * information needed for asynchronous execution
     */
-   bool        async_capable;  /* engage asynchronous-capable logic? */
+   /* engage asynchronous-capable logic? */
+   bool        async_capable;
 
    /*
     * Common structural data for all Plan types.
     */
-   int         plan_node_id;   /* unique across entire final plan tree */
-   List       *targetlist;     /* target list to be computed at this node */
-   List       *qual;           /* implicitly-ANDed qual conditions */
-   struct Plan *lefttree;      /* input plan tree(s) */
+   /* unique across entire final plan tree */
+   int         plan_node_id;
+   /* target list to be computed at this node */
+   List       *targetlist;
+   /* implicitly-ANDed qual conditions */
+   List       *qual;
+   /* input plan tree(s) */
+   struct Plan *lefttree;
    struct Plan *righttree;
-   List       *initPlan;       /* Init Plan nodes (un-correlated expr
-                                * subselects) */
+   /* Init Plan nodes (un-correlated expr subselects) */
+   List       *initPlan;
 
    /*
     * Information for management of parameter-change-driven rescanning
@@ -237,32 +278,54 @@ typedef struct ProjectSet
 typedef struct ModifyTable
 {
    Plan        plan;
-   CmdType     operation;      /* INSERT, UPDATE, DELETE, or MERGE */
-   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 */
-   char       *returningOldAlias;  /* alias for OLD in RETURNING lists */
-   char       *returningNewAlias;  /* alias for NEW in RETURNING lists */
-   List       *returningLists; /* per-target-table RETURNING tlists */
-   List       *fdwPrivLists;   /* per-target-table FDW private data lists */
-   Bitmapset  *fdwDirectModifyPlans;   /* indices of FDW DM plans */
-   List       *rowMarks;       /* PlanRowMarks (non-locking only) */
-   int         epqParam;       /* ID of Param for EvalPlanQual re-eval */
-   OnConflictAction onConflictAction;  /* ON CONFLICT action */
-   List       *arbiterIndexes; /* List of ON CONFLICT arbiter index OIDs  */
-   List       *onConflictSet;  /* INSERT ON CONFLICT DO UPDATE targetlist */
-   List       *onConflictCols; /* target column numbers for onConflictSet */
-   Node       *onConflictWhere;    /* WHERE for ON CONFLICT UPDATE */
-   Index       exclRelRTI;     /* RTI of the EXCLUDED pseudo relation */
-   List       *exclRelTlist;   /* tlist of the EXCLUDED pseudo relation */
-   List       *mergeActionLists;   /* per-target-table lists of actions for
-                                    * MERGE */
-   List       *mergeJoinConditions;    /* per-target-table join conditions
-                                        * for MERGE */
+   /* INSERT, UPDATE, DELETE, or MERGE */
+   CmdType     operation;
+   /* do we set the command tag/es_processed? */
+   bool        canSetTag;
+   /* Parent RT index for use of EXPLAIN */
+   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 */
+   List       *updateColnosLists;
+   /* per-target-table WCO lists */
+   List       *withCheckOptionLists;
+   /* alias for OLD in RETURNING lists */
+   char       *returningOldAlias;
+   /* alias for NEW in RETURNING lists */
+   char       *returningNewAlias;
+   /* per-target-table RETURNING tlists */
+   List       *returningLists;
+   /* per-target-table FDW private data lists */
+   List       *fdwPrivLists;
+   /* indices of FDW DM plans */
+   Bitmapset  *fdwDirectModifyPlans;
+   /* PlanRowMarks (non-locking only) */
+   List       *rowMarks;
+   /* ID of Param for EvalPlanQual re-eval */
+   int         epqParam;
+   /* ON CONFLICT action */
+   OnConflictAction onConflictAction;
+   /* List of ON CONFLICT arbiter index OIDs  */
+   List       *arbiterIndexes;
+   /* INSERT ON CONFLICT DO UPDATE targetlist */
+   List       *onConflictSet;
+   /* target column numbers for onConflictSet */
+   List       *onConflictCols;
+   /* WHERE for ON CONFLICT UPDATE */
+   Node       *onConflictWhere;
+   /* RTI of the EXCLUDED pseudo relation */
+   Index       exclRelRTI;
+   /* tlist of the EXCLUDED pseudo relation */
+   List       *exclRelTlist;
+   /* per-target-table lists of actions for MERGE */
+   List       *mergeActionLists;
+   /* per-target-table join conditions for MERGE */
+   List       *mergeJoinConditions;
 } ModifyTable;
 
 struct PartitionPruneInfo;     /* forward reference to struct below */
@@ -275,9 +338,11 @@ struct PartitionPruneInfo;     /* forward reference to struct below */
 typedef struct Append
 {
    Plan        plan;
-   Bitmapset  *apprelids;      /* RTIs of appendrel(s) formed by this node */
+   /* RTIs of appendrel(s) formed by this node */
+   Bitmapset  *apprelids;
    List       *appendplans;
-   int         nasyncplans;    /* # of asynchronous plans */
+   /* # of asynchronous plans */
+   int         nasyncplans;
 
    /*
     * All 'appendplans' preceding this index are non-partial plans. All
@@ -404,7 +469,8 @@ typedef struct Scan
    pg_node_attr(abstract)
 
    Plan        plan;
-   Index       scanrelid;      /* relid is index into the range table */
+   /* relid is index into the range table */
+   Index       scanrelid;
 } Scan;
 
 /* ----------------
@@ -467,13 +533,20 @@ typedef struct SampleScan
 typedef struct IndexScan
 {
    Scan        scan;
-   Oid         indexid;        /* OID of index to scan */
-   List       *indexqual;      /* list of index quals (usually OpExprs) */
-   List       *indexqualorig;  /* the same in original form */
-   List       *indexorderby;   /* list of index ORDER BY exprs */
-   List       *indexorderbyorig;   /* the same in original form */
-   List       *indexorderbyops;    /* OIDs of sort ops for ORDER BY exprs */
-   ScanDirection indexorderdir;    /* forward or backward or don't care */
+   /* OID of index to scan */
+   Oid         indexid;
+   /* list of index quals (usually OpExprs) */
+   List       *indexqual;
+   /* the same in original form */
+   List       *indexqualorig;
+   /* list of index ORDER BY exprs */
+   List       *indexorderby;
+   /* the same in original form */
+   List       *indexorderbyorig;
+   /* OIDs of sort ops for ORDER BY exprs */
+   List       *indexorderbyops;
+   /* forward or backward or don't care */
+   ScanDirection indexorderdir;
 } IndexScan;
 
 /* ----------------
@@ -510,12 +583,18 @@ typedef struct IndexScan
 typedef struct IndexOnlyScan
 {
    Scan        scan;
-   Oid         indexid;        /* OID of index to scan */
-   List       *indexqual;      /* list of index quals (usually OpExprs) */
-   List       *recheckqual;    /* index quals in recheckable form */
-   List       *indexorderby;   /* list of index ORDER BY exprs */
-   List       *indextlist;     /* TargetEntry list describing index's cols */
-   ScanDirection indexorderdir;    /* forward or backward or don't care */
+   /* OID of index to scan */
+   Oid         indexid;
+   /* list of index quals (usually OpExprs) */
+   List       *indexqual;
+   /* index quals in recheckable form */
+   List       *recheckqual;
+   /* list of index ORDER BY exprs */
+   List       *indexorderby;
+   /* TargetEntry list describing index's cols */
+   List       *indextlist;
+   /* forward or backward or don't care */
+   ScanDirection indexorderdir;
 } IndexOnlyScan;
 
 /* ----------------
@@ -538,10 +617,14 @@ typedef struct IndexOnlyScan
 typedef struct BitmapIndexScan
 {
    Scan        scan;
-   Oid         indexid;        /* OID of index to scan */
-   bool        isshared;       /* Create shared bitmap if set */
-   List       *indexqual;      /* list of index quals (OpExprs) */
-   List       *indexqualorig;  /* the same in original form */
+   /* OID of index to scan */
+   Oid         indexid;
+   /* Create shared bitmap if set */
+   bool        isshared;
+   /* list of index quals (OpExprs) */
+   List       *indexqual;
+   /* the same in original form */
+   List       *indexqualorig;
 } BitmapIndexScan;
 
 /* ----------------
@@ -556,7 +639,8 @@ typedef struct BitmapIndexScan
 typedef struct BitmapHeapScan
 {
    Scan        scan;
-   List       *bitmapqualorig; /* index quals, in standard expr form */
+   /* index quals, in standard expr form */
+   List       *bitmapqualorig;
 } BitmapHeapScan;
 
 /* ----------------
@@ -570,7 +654,8 @@ typedef struct BitmapHeapScan
 typedef struct TidScan
 {
    Scan        scan;
-   List       *tidquals;       /* qual(s) involving CTID = something */
+   /* qual(s) involving CTID = something */
+   List       *tidquals;
 } TidScan;
 
 /* ----------------
@@ -583,7 +668,8 @@ typedef struct TidScan
 typedef struct TidRangeScan
 {
    Scan        scan;
-   List       *tidrangequals;  /* qual(s) involving CTID op something */
+   /* qual(s) involving CTID op something */
+   List       *tidrangequals;
 } TidRangeScan;
 
 /* ----------------
@@ -627,8 +713,10 @@ typedef struct SubqueryScan
 typedef struct FunctionScan
 {
    Scan        scan;
-   List       *functions;      /* list of RangeTblFunction nodes */
-   bool        funcordinality; /* WITH ORDINALITY */
+   /* list of RangeTblFunction nodes */
+   List       *functions;
+   /* WITH ORDINALITY */
+   bool        funcordinality;
 } FunctionScan;
 
 /* ----------------
@@ -638,7 +726,8 @@ typedef struct FunctionScan
 typedef struct ValuesScan
 {
    Scan        scan;
-   List       *values_lists;   /* list of expression lists */
+   /* list of expression lists */
+   List       *values_lists;
 } ValuesScan;
 
 /* ----------------
@@ -648,7 +737,8 @@ typedef struct ValuesScan
 typedef struct TableFuncScan
 {
    Scan        scan;
-   TableFunc  *tablefunc;      /* table function node */
+   /* table function node */
+   TableFunc  *tablefunc;
 } TableFuncScan;
 
 /* ----------------
@@ -658,8 +748,10 @@ typedef struct TableFuncScan
 typedef struct CteScan
 {
    Scan        scan;
-   int         ctePlanId;      /* ID of init SubPlan for CTE */
-   int         cteParam;       /* ID of Param representing CTE output */
+   /* ID of init SubPlan for CTE */
+   int         ctePlanId;
+   /* ID of Param representing CTE output */
+   int         cteParam;
 } CteScan;
 
 /* ----------------
@@ -669,7 +761,8 @@ typedef struct CteScan
 typedef struct NamedTuplestoreScan
 {
    Scan        scan;
-   char       *enrname;        /* Name given to Ephemeral Named Relation */
+   /* Name given to Ephemeral Named Relation */
+   char       *enrname;
 } NamedTuplestoreScan;
 
 /* ----------------
@@ -679,7 +772,8 @@ typedef struct NamedTuplestoreScan
 typedef struct WorkTableScan
 {
    Scan        scan;
-   int         wtParam;        /* ID of Param representing work table */
+   /* ID of Param representing work table */
+   int         wtParam;
 } WorkTableScan;
 
 /* ----------------
@@ -725,18 +819,28 @@ typedef struct WorkTableScan
 typedef struct ForeignScan
 {
    Scan        scan;
-   CmdType     operation;      /* SELECT/INSERT/UPDATE/DELETE */
-   Index       resultRelation; /* direct modification target's RT index */
-   Oid         checkAsUser;    /* user to perform the scan as; 0 means to
-                                * check as current user */
-   Oid         fs_server;      /* OID of foreign server */
-   List       *fdw_exprs;      /* expressions that FDW may evaluate */
-   List       *fdw_private;    /* private data for FDW */
-   List       *fdw_scan_tlist; /* optional tlist describing scan tuple */
-   List       *fdw_recheck_quals;  /* original quals not in scan.plan.qual */
-   Bitmapset  *fs_relids;      /* base+OJ RTIs generated by this scan */
-   Bitmapset  *fs_base_relids; /* base RTIs generated by this scan */
-   bool        fsSystemCol;    /* true if any "system column" is needed */
+   /* SELECT/INSERT/UPDATE/DELETE */
+   CmdType     operation;
+   /* direct modification target's RT index */
+   Index       resultRelation;
+   /* user to perform the scan as; 0 means to check as current user */
+   Oid         checkAsUser;
+   /* OID of foreign server */
+   Oid         fs_server;
+   /* expressions that FDW may evaluate */
+   List       *fdw_exprs;
+   /* private data for FDW */
+   List       *fdw_private;
+   /* optional tlist describing scan tuple */
+   List       *fdw_scan_tlist;
+   /* original quals not in scan.plan.qual */
+   List       *fdw_recheck_quals;
+   /* base+OJ RTIs generated by this scan */
+   Bitmapset  *fs_relids;
+   /* base RTIs generated by this scan */
+   Bitmapset  *fs_base_relids;
+   /* true if any "system column" is needed */
+   bool        fsSystemCol;
 } ForeignScan;
 
 /* ----------------
@@ -757,13 +861,18 @@ struct CustomScanMethods;
 typedef struct CustomScan
 {
    Scan        scan;
-   uint32      flags;          /* mask of CUSTOMPATH_* flags, see
-                                * nodes/extensible.h */
-   List       *custom_plans;   /* list of Plan nodes, if any */
-   List       *custom_exprs;   /* expressions that custom code may evaluate */
-   List       *custom_private; /* private data for custom code */
-   List       *custom_scan_tlist;  /* optional tlist describing scan tuple */
-   Bitmapset  *custom_relids;  /* RTIs generated by this scan */
+   /* mask of CUSTOMPATH_* flags, see nodes/extensible.h */
+   uint32      flags;
+   /* list of Plan nodes, if any */
+   List       *custom_plans;
+   /* expressions that custom code may evaluate */
+   List       *custom_exprs;
+   /* private data for custom code */
+   List       *custom_private;
+   /* optional tlist describing scan tuple */
+   List       *custom_scan_tlist;
+   /* RTIs generated by this scan */
+   Bitmapset  *custom_relids;
 
    /*
     * NOTE: The method field of CustomScan is required to be a pointer to a
@@ -808,7 +917,8 @@ typedef struct Join
    Plan        plan;
    JoinType    jointype;
    bool        inner_unique;
-   List       *joinqual;       /* JOIN quals (in addition to plan.qual) */
+   /* JOIN quals (in addition to plan.qual) */
+   List       *joinqual;
 } Join;
 
 /* ----------------
@@ -825,7 +935,8 @@ typedef struct Join
 typedef struct NestLoop
 {
    Join        join;
-   List       *nestParams;     /* list of NestLoopParam nodes */
+   /* list of NestLoopParam nodes */
+   List       *nestParams;
 } NestLoop;
 
 typedef struct NestLoopParam
@@ -833,8 +944,10 @@ typedef struct NestLoopParam
    pg_node_attr(no_equal, no_query_jumble)
 
    NodeTag     type;
-   int         paramno;        /* number of the PARAM_EXEC Param to set */
-   Var        *paramval;       /* outer-relation Var to assign to Param */
+   /* number of the PARAM_EXEC Param to set */
+   int         paramno;
+   /* outer-relation Var to assign to Param */
+   Var        *paramval;
 } NestLoopParam;
 
 /* ----------------
@@ -973,7 +1086,8 @@ typedef struct Sort
 typedef struct IncrementalSort
 {
    Sort        sort;
-   int         nPresortedCols; /* number of presorted columns */
+   /* number of presorted columns */
+   int         nPresortedCols;
 } IncrementalSort;
 
 /* ---------------
@@ -1158,12 +1272,20 @@ typedef struct Unique
 typedef struct Gather
 {
    Plan        plan;
-   int         num_workers;    /* planned number of worker processes */
-   int         rescan_param;   /* ID of Param that signals a rescan, or -1 */
-   bool        single_copy;    /* don't execute plan more than once */
-   bool        invisible;      /* suppress EXPLAIN display (for testing)? */
-   Bitmapset  *initParam;      /* param id's of initplans which are referred
-                                * at gather or one of its child nodes */
+   /* planned number of worker processes */
+   int         num_workers;
+   /* ID of Param that signals a rescan, or -1 */
+   int         rescan_param;
+   /* don't execute plan more than once */
+   bool        single_copy;
+   /* suppress EXPLAIN display (for testing)? */
+   bool        invisible;
+
+   /*
+    * param id's of initplans which are referred at gather or one of its
+    * child nodes
+    */
+   Bitmapset  *initParam;
 } Gather;
 
 /* ------------
@@ -1220,12 +1342,17 @@ typedef struct Hash
     * List of expressions to be hashed for tuples from Hash's outer plan,
     * needed to put them into the hashtable.
     */
-   List       *hashkeys;       /* hash keys for the hashjoin condition */
-   Oid         skewTable;      /* outer join key's table OID, or InvalidOid */
-   AttrNumber  skewColumn;     /* outer join key's column #, or zero */
-   bool        skewInherit;    /* is outer join rel an inheritance tree? */
+   /* hash keys for the hashjoin condition */
+   List       *hashkeys;
+   /* outer join key's table OID, or InvalidOid */
+   Oid         skewTable;
+   /* outer join key's column #, or zero */
+   AttrNumber  skewColumn;
+   /* is outer join rel an inheritance tree? */
+   bool        skewInherit;
    /* all other info is in the parent HashJoin node */
-   Cardinality rows_total;     /* estimate total rows if parallel_aware */
+   /* estimate total rows if parallel_aware */
+   Cardinality rows_total;
 } Hash;
 
 /* ----------------
@@ -1271,8 +1398,10 @@ typedef struct SetOp
 typedef struct LockRows
 {
    Plan        plan;
-   List       *rowMarks;       /* a list of PlanRowMark's */
-   int         epqParam;       /* ID of Param for EvalPlanQual re-eval */
+   /* a list of PlanRowMark's */
+   List       *rowMarks;
+   /* ID of Param for EvalPlanQual re-eval */
+   int         epqParam;
 } LockRows;
 
 /* ----------------
@@ -1394,14 +1523,22 @@ typedef struct PlanRowMark
    pg_node_attr(no_equal, no_query_jumble)
 
    NodeTag     type;
-   Index       rti;            /* range table index of markable relation */
-   Index       prti;           /* range table index of parent relation */
-   Index       rowmarkId;      /* unique identifier for resjunk columns */
-   RowMarkType markType;       /* see enum above */
-   int         allMarkTypes;   /* OR of (1<
-   LockClauseStrength strength;    /* LockingClause's strength, or LCS_NONE */
-   LockWaitPolicy waitPolicy;  /* NOWAIT and SKIP LOCKED options */
-   bool        isParent;       /* true if this is a "dummy" parent entry */
+   /* range table index of markable relation */
+   Index       rti;
+   /* range table index of parent relation */
+   Index       prti;
+   /* unique identifier for resjunk columns */
+   Index       rowmarkId;
+   /* see enum above */
+   RowMarkType markType;
+   /* OR of (1<
+   int         allMarkTypes;
+   /* LockingClause's strength, or LCS_NONE */
+   LockClauseStrength strength;
+   /* NOWAIT and SKIP LOCKED options */
+   LockWaitPolicy waitPolicy;
+   /* true if this is a "dummy" parent entry */
+   bool        isParent;
 } PlanRowMark;
 
 
@@ -1503,8 +1640,10 @@ typedef struct PartitionedRelPruneInfo
     * is required.  exec_pruning_steps shows how to prune with PARAM_EXEC
     * Params; it is NIL if no per-scan pruning is required.
     */
-   List       *initial_pruning_steps;  /* List of PartitionPruneStep */
-   List       *exec_pruning_steps; /* List of PartitionPruneStep */
+   /* List of PartitionPruneStep */
+   List       *initial_pruning_steps;
+   /* List of PartitionPruneStep */
+   List       *exec_pruning_steps;
 
    /* All PARAM_EXEC Param IDs in exec_pruning_steps */
    Bitmapset  *execparamids;
@@ -1596,8 +1735,10 @@ typedef struct PlanInvalItem
    pg_node_attr(no_equal, no_query_jumble)
 
    NodeTag     type;
-   int         cacheId;        /* a syscache ID, see utils/syscache.h */
-   uint32      hashValue;      /* hash value of object's cache lookup key */
+   /* a syscache ID, see utils/syscache.h */
+   int         cacheId;
+   /* hash value of object's cache lookup key */
+   uint32      hashValue;
 } PlanInvalItem;
 
 /*