]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Reformat node comments in plannodes.h
authorMichael Paquier <michael@paquier.xyz>
Mon, 10 Feb 2025 00:58:25 +0000 (09:58 +0900)
committerMichael Paquier <michael@paquier.xyz>
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/Z5xTb5iBHVGns35R@paquier.xyz

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<<markType) for all children */
-       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<<markType) for all children */
+       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;
 
 /*