Rework format of comments in headers for nodes
authorMichael Paquier <michael@paquier.xyz>
Sat, 21 Jan 2023 03:17:02 +0000 (12:17 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 21 Jan 2023 03:17:02 +0000 (12:17 +0900)
This is similar to 835d476, except that this one is to add node
attributes related to query jumbling and avoid long lines in the headers
and in the node structures changed by this commit.

Reviewed-by: Peter Eisentraut
Discussion: https://postgr.es/m/Y5BHOUhX3zTH/ig6@paquier.xyz

src/include/nodes/parsenodes.h
src/include/nodes/primnodes.h

index f39ab8586a5cee622e607d4e08421a77c417b8b5..89335d95e7b498af73322ddb24c7cd4a567d3cc3 100644 (file)
@@ -123,7 +123,8 @@ typedef struct Query
 
    CmdType     commandType;    /* select|insert|update|delete|merge|utility */
 
-   QuerySource querySource;    /* where did I come from? */
+   /* where did I come from? */
+   QuerySource querySource;
 
    /*
     * query identifier (can be set by plugins); ignored for equal, as it
@@ -131,39 +132,58 @@ typedef struct Query
     */
    uint64      queryId pg_node_attr(equal_ignore, read_write_ignore, read_as(0));
 
-   bool        canSetTag;      /* do I set the command result tag? */
+   /* do I set the command result tag? */
+   bool        canSetTag;
 
    Node       *utilityStmt;    /* non-null if commandType == CMD_UTILITY */
 
-   int         resultRelation; /* rtable index of target relation for
-                                * INSERT/UPDATE/DELETE/MERGE; 0 for SELECT */
-
-   bool        hasAggs;        /* has aggregates in tlist or havingQual */
-   bool        hasWindowFuncs; /* has window functions in tlist */
-   bool        hasTargetSRFs;  /* has set-returning functions in tlist */
-   bool        hasSubLinks;    /* has subquery SubLink */
-   bool        hasDistinctOn;  /* distinctClause is from DISTINCT ON */
-   bool        hasRecursive;   /* WITH RECURSIVE was specified */
-   bool        hasModifyingCTE;    /* has INSERT/UPDATE/DELETE in WITH */
-   bool        hasForUpdate;   /* FOR [KEY] UPDATE/SHARE was specified */
-   bool        hasRowSecurity; /* rewriter has applied some RLS policy */
-
-   bool        isReturn;       /* is a RETURN statement */
+   /*
+    * rtable index of target relation for INSERT/UPDATE/DELETE/MERGE; 0 for
+    * SELECT.
+    */
+   int         resultRelation;
+
+   /* has aggregates in tlist or havingQual */
+   bool        hasAggs;
+   /* has window functions in tlist */
+   bool        hasWindowFuncs;
+   /* has set-returning functions in tlist */
+   bool        hasTargetSRFs;
+   /* has subquery SubLink */
+   bool        hasSubLinks;
+   /* distinctClause is from DISTINCT ON */
+   bool        hasDistinctOn;
+   /* WITH RECURSIVE was specified */
+   bool        hasRecursive;
+   /* has INSERT/UPDATE/DELETE in WITH */
+   bool        hasModifyingCTE;
+   /* FOR [KEY] UPDATE/SHARE was specified */
+   bool        hasForUpdate;
+   /* rewriter has applied some RLS policy */
+   bool        hasRowSecurity;
+   /* is a RETURN statement */
+   bool        isReturn;
 
    List       *cteList;        /* WITH list (of CommonTableExpr's) */
 
    List       *rtable;         /* list of range table entries */
-   List       *rteperminfos;   /* list of RTEPermissionInfo nodes for the
-                                * rtable entries having perminfoindex > 0 */
+
+   /*
+    * list of RTEPermissionInfo nodes for the rtable entries having
+    * perminfoindex > 0
+    */
+   List       *rteperminfos;
    FromExpr   *jointree;       /* table join tree (FROM and WHERE clauses);
                                 * also USING clause for MERGE */
 
    List       *mergeActionList;    /* list of actions for MERGE (only) */
-   bool        mergeUseOuterJoin;  /* whether to use outer join */
+   /* whether to use outer join */
+   bool        mergeUseOuterJoin;
 
    List       *targetList;     /* target list (of TargetEntry) */
 
-   OverridingKind override;    /* OVERRIDING clause */
+   /* OVERRIDING clause */
+   OverridingKind override;
 
    OnConflictExpr *onConflict; /* ON CONFLICT DO [NOTHING | UPDATE] */
 
@@ -191,11 +211,14 @@ typedef struct Query
    Node       *setOperations;  /* set-operation tree if this is top level of
                                 * a UNION/INTERSECT/EXCEPT query */
 
-   List       *constraintDeps; /* a list of pg_constraint OIDs that the query
-                                * depends on to be semantically valid */
+   /*
+    * A list of pg_constraint OIDs that the query depends on to be
+    * semantically valid
+    */
+   List       *constraintDeps;
 
-   List       *withCheckOptions;   /* a list of WithCheckOption's (added
-                                    * during rewrite) */
+   /* a list of WithCheckOption's (added during rewrite) */
+   List       *withCheckOptions;
 
    /*
     * The following two fields identify the portion of the source text string
@@ -203,8 +226,10 @@ typedef struct Query
     * Queries, not in sub-queries.  When not set, they might both be zero, or
     * both be -1 meaning "unknown".
     */
-   int         stmt_location;  /* start location, or -1 if unknown */
-   int         stmt_len;       /* length in bytes; 0 means "rest of string" */
+   /* start location, or -1 if unknown */
+   int         stmt_location;
+   /* length in bytes; 0 means "rest of string" */
+   int         stmt_len;
 } Query;
 
 
@@ -1231,14 +1256,21 @@ typedef struct RangeTblFunction
    NodeTag     type;
 
    Node       *funcexpr;       /* expression tree for func call */
-   int         funccolcount;   /* number of columns it contributes to RTE */
+   /* number of columns it contributes to RTE */
+   int         funccolcount;
    /* These fields record the contents of a column definition list, if any: */
-   List       *funccolnames;   /* column names (list of String) */
-   List       *funccoltypes;   /* OID list of column type OIDs */
-   List       *funccoltypmods; /* integer list of column typmods */
-   List       *funccolcollations;  /* OID list of column collation OIDs */
+   /* column names (list of String) */
+   List       *funccolnames;
+   /* OID list of column type OIDs */
+   List       *funccoltypes;
+   /* integer list of column typmods */
+   List       *funccoltypmods;
+   /* OID list of column collation OIDs */
+   List       *funccolcollations;
+
    /* This is set during planning for use by the executor: */
-   Bitmapset  *funcparams;     /* PARAM_EXEC Param IDs affecting this func */
+   /* PARAM_EXEC Param IDs affecting this func */
+   Bitmapset  *funcparams;
 } RangeTblFunction;
 
 /*
@@ -1345,7 +1377,8 @@ typedef struct SortGroupClause
    Oid         eqop;           /* the equality operator ('=' op) */
    Oid         sortop;         /* the ordering operator ('<' op), or 0 */
    bool        nulls_first;    /* do NULLs come before normal values? */
-   bool        hashable;       /* can eqop be implemented by hashing? */
+   /* can eqop be implemented by hashing? */
+   bool        hashable;
 } SortGroupClause;
 
 /*
@@ -1435,21 +1468,31 @@ typedef struct GroupingSet
 typedef struct WindowClause
 {
    NodeTag     type;
-   char       *name;           /* window name (NULL in an OVER clause) */
-   char       *refname;        /* referenced window name, if any */
+   /* window name (NULL in an OVER clause) */
+   char       *name;
+   /* referenced window name, if any */
+   char       *refname;
    List       *partitionClause;    /* PARTITION BY list */
-   List       *orderClause;    /* ORDER BY list */
+   /* ORDER BY list */
+   List       *orderClause;
    int         frameOptions;   /* frame_clause options, see WindowDef */
    Node       *startOffset;    /* expression for starting bound, if any */
    Node       *endOffset;      /* expression for ending bound, if any */
-   List       *runCondition;   /* qual to help short-circuit execution */
-   Oid         startInRangeFunc;   /* in_range function for startOffset */
-   Oid         endInRangeFunc; /* in_range function for endOffset */
-   Oid         inRangeColl;    /* collation for in_range tests */
-   bool        inRangeAsc;     /* use ASC sort order for in_range tests? */
-   bool        inRangeNullsFirst;  /* nulls sort first for in_range tests? */
+   /* qual to help short-circuit execution */
+   List       *runCondition;
+   /* in_range function for startOffset */
+   Oid         startInRangeFunc;
+   /* in_range function for endOffset */
+   Oid         endInRangeFunc;
+   /* collation for in_range tests */
+   Oid         inRangeColl;
+   /* use ASC sort order for in_range tests? */
+   bool        inRangeAsc;
+   /* nulls sort first for in_range tests? */
+   bool        inRangeNullsFirst;
    Index       winref;         /* ID referenced by window functions */
-   bool        copiedOrder;    /* did we copy orderClause from refname? */
+   /* did we copy orderClause from refname? */
+   bool        copiedOrder;
 } WindowClause;
 
 /*
@@ -1568,13 +1611,22 @@ typedef struct CommonTableExpr
    CTECycleClause *cycle_clause;
    int         location;       /* token location, or -1 if unknown */
    /* These fields are set during parse analysis: */
-   bool        cterecursive;   /* is this CTE actually recursive? */
-   int         cterefcount;    /* number of RTEs referencing this CTE
-                                * (excluding internal self-references) */
-   List       *ctecolnames;    /* list of output column names */
-   List       *ctecoltypes;    /* OID list of output column type OIDs */
-   List       *ctecoltypmods;  /* integer list of output column typmods */
-   List       *ctecolcollations;   /* OID list of column collation OIDs */
+   /* is this CTE actually recursive? */
+   bool        cterecursive;
+
+   /*
+    * Number of RTEs referencing this CTE (excluding internal
+    * self-references)
+    */
+   int         cterefcount;
+   /* list of output column names */
+   List       *ctecolnames;
+   /* OID list of output column type OIDs */
+   List       *ctecoltypes;
+   /* integer list of output column typmods */
+   List       *ctecoltypmods;
+   /* OID list of column collation OIDs */
+   List       *ctecolcollations;
 } CommonTableExpr;
 
 /* Convenience macro to get the output tlist of a CTE's query */
@@ -1611,10 +1663,12 @@ typedef struct MergeAction
    NodeTag     type;
    bool        matched;        /* true=MATCHED, false=NOT MATCHED */
    CmdType     commandType;    /* INSERT/UPDATE/DELETE/DO NOTHING */
-   OverridingKind override;    /* OVERRIDING clause */
+   /* OVERRIDING clause */
+   OverridingKind override;
    Node       *qual;           /* transformed WHEN conditions */
    List       *targetList;     /* the target list (of TargetEntry) */
-   List       *updateColnos;   /* target attribute numbers of an UPDATE */
+   /* target attribute numbers of an UPDATE */
+   List       *updateColnos;
 } MergeAction;
 
 /*
@@ -1824,10 +1878,14 @@ typedef struct SetOperationStmt
    /* Eventually add fields for CORRESPONDING spec here */
 
    /* Fields derived during parse analysis: */
-   List       *colTypes;       /* OID list of output column type OIDs */
-   List       *colTypmods;     /* integer list of output column typmods */
-   List       *colCollations;  /* OID list of output column collation OIDs */
-   List       *groupClauses;   /* a list of SortGroupClause's */
+   /* OID list of output column type OIDs */
+   List       *colTypes;
+   /* integer list of output column typmods */
+   List       *colTypmods;
+   /* OID list of output column collation OIDs */
+   List       *colCollations;
+   /* a list of SortGroupClause's */
+   List       *groupClauses;
    /* groupClauses is NIL if UNION ALL, but must be set otherwise */
 } SetOperationStmt;
 
index 83e40e56d3f4a87e1abc0ceb7f6003ee9f341d66..3bdde134f4749956920aa05f8b6219d5715e54cc 100644 (file)
@@ -98,19 +98,32 @@ typedef struct RangeVar
 typedef struct TableFunc
 {
    NodeTag     type;
-   List       *ns_uris;        /* list of namespace URI expressions */
-   List       *ns_names;       /* list of namespace names or NULL */
-   Node       *docexpr;        /* input document expression */
-   Node       *rowexpr;        /* row filter expression */
-   List       *colnames;       /* column names (list of String) */
-   List       *coltypes;       /* OID list of column type OIDs */
-   List       *coltypmods;     /* integer list of column typmods */
-   List       *colcollations;  /* OID list of column collation OIDs */
-   List       *colexprs;       /* list of column filter expressions */
-   List       *coldefexprs;    /* list of column default expressions */
-   Bitmapset  *notnulls;       /* nullability flag for each output column */
-   int         ordinalitycol;  /* counts from 0; -1 if none specified */
-   int         location;       /* token location, or -1 if unknown */
+   /* list of namespace URI expressions */
+   List       *ns_uris;
+   /* list of namespace names or NULL */
+   List       *ns_names;
+   /* input document expression */
+   Node       *docexpr;
+   /* row filter expression */
+   Node       *rowexpr;
+   /* column names (list of String) */
+   List       *colnames;
+   /* OID list of column type OIDs */
+   List       *coltypes;
+   /* integer list of column typmods */
+   List       *coltypmods;
+   /* OID list of column collation OIDs */
+   List       *colcollations;
+   /* list of column filter expressions */
+   List       *colexprs;
+   /* list of column default expressions */
+   List       *coldefexprs;
+   /* nullability flag for each output column */
+   Bitmapset  *notnulls;
+   /* counts from 0; -1 if none specified */
+   int         ordinalitycol;
+   /* token location, or -1 if unknown */
+   int         location;
 } TableFunc;
 
 /*
@@ -256,18 +269,27 @@ typedef struct Const
    pg_node_attr(custom_copy_equal, custom_read_write)
 
    Expr        xpr;
-   Oid         consttype;      /* pg_type OID of the constant's datatype */
-   int32       consttypmod;    /* typmod value, if any */
-   Oid         constcollid;    /* OID of collation, or InvalidOid if none */
-   int         constlen;       /* typlen of the constant's datatype */
-   Datum       constvalue;     /* the constant's value */
-   bool        constisnull;    /* whether the constant is null (if true,
-                                * constvalue is undefined) */
-   bool        constbyval;     /* whether this datatype is passed by value.
-                                * If true, then all the information is stored
-                                * in the Datum. If false, then the Datum
-                                * contains a pointer to the information. */
-   int         location;       /* token location, or -1 if unknown */
+   /* pg_type OID of the constant's datatype */
+   Oid         consttype;
+   /* typmod value, if any */
+   int32       consttypmod;
+   /* OID of collation, or InvalidOid if none */
+   Oid         constcollid;
+   /* typlen of the constant's datatype */
+   int         constlen;
+   /* the constant's value */
+   Datum       constvalue;
+   /* whether the constant is null (if true, constvalue is undefined) */
+   bool        constisnull;
+
+   /*
+    * Whether this datatype is passed by value.  If true, then all the
+    * information is stored in the Datum.  If false, then the Datum contains
+    * a pointer to the information.
+    */
+   bool        constbyval;
+   /* token location, or -1 if unknown */
+   int         location;
 } Const;
 
 /*
@@ -311,9 +333,12 @@ typedef struct Param
    ParamKind   paramkind;      /* kind of parameter. See above */
    int         paramid;        /* numeric ID for parameter */
    Oid         paramtype;      /* pg_type OID of parameter's datatype */
-   int32       paramtypmod;    /* typmod value, if known */
-   Oid         paramcollid;    /* OID of collation, or InvalidOid if none */
-   int         location;       /* token location, or -1 if unknown */
+   /* typmod value, if known */
+   int32       paramtypmod;
+   /* OID of collation, or InvalidOid if none */
+   Oid         paramcollid;
+   /* token location, or -1 if unknown */
+   int         location;
 } Param;
 
 /*
@@ -486,16 +511,26 @@ typedef struct GroupingFunc
 typedef struct WindowFunc
 {
    Expr        xpr;
-   Oid         winfnoid;       /* pg_proc Oid of the function */
-   Oid         wintype;        /* type Oid of result of the window function */
-   Oid         wincollid;      /* OID of collation of result */
-   Oid         inputcollid;    /* OID of collation that function should use */
-   List       *args;           /* arguments to the window function */
-   Expr       *aggfilter;      /* FILTER expression, if any */
-   Index       winref;         /* index of associated WindowClause */
-   bool        winstar;        /* true if argument list was really '*' */
-   bool        winagg;         /* is function a simple aggregate? */
-   int         location;       /* token location, or -1 if unknown */
+   /* pg_proc Oid of the function */
+   Oid         winfnoid;
+   /* type Oid of result of the window function */
+   Oid         wintype;
+   /* OID of collation of result */
+   Oid         wincollid;
+   /* OID of collation that function should use */
+   Oid         inputcollid;
+   /* arguments to the window function */
+   List       *args;
+   /* FILTER expression, if any */
+   Expr       *aggfilter;
+   /* index of associated WindowClause */
+   Index       winref;
+   /* true if argument list was really '*' */
+   bool        winstar;
+   /* is function a simple aggregate? */
+   bool        winagg;
+   /* token location, or -1 if unknown */
+   int         location;
 } WindowFunc;
 
 /*
@@ -539,20 +574,28 @@ typedef struct WindowFunc
 typedef struct SubscriptingRef
 {
    Expr        xpr;
-   Oid         refcontainertype;   /* type of the container proper */
-   Oid         refelemtype;    /* the container type's pg_type.typelem */
-   Oid         refrestype;     /* type of the SubscriptingRef's result */
-   int32       reftypmod;      /* typmod of the result */
-   Oid         refcollid;      /* collation of result, or InvalidOid if none */
-   List       *refupperindexpr;    /* expressions that evaluate to upper
-                                    * container indexes */
-   List       *reflowerindexpr;    /* expressions that evaluate to lower
-                                    * container indexes, or NIL for single
-                                    * container element */
-   Expr       *refexpr;        /* the expression that evaluates to a
-                                * container value */
-   Expr       *refassgnexpr;   /* expression for the source value, or NULL if
-                                * fetch */
+   /* type of the container proper */
+   Oid         refcontainertype;
+   /* the container type's pg_type.typelem */
+   Oid         refelemtype;
+   /* type of the SubscriptingRef's result */
+   Oid         refrestype;
+   /* typmod of the result */
+   int32       reftypmod;
+   /* collation of result, or InvalidOid if none */
+   Oid         refcollid;
+   /* expressions that evaluate to upper container indexes */
+   List       *refupperindexpr;
+
+   /*
+    * expressions that evaluate to lower container indexes, or NIL for single
+    * container element.
+    */
+   List       *reflowerindexpr;
+   /* the expression that evaluates to a container value */
+   Expr       *refexpr;
+   /* expression for the source value, or NULL if fetch */
+   Expr       *refassgnexpr;
 } SubscriptingRef;
 
 /*
@@ -595,16 +638,28 @@ typedef enum CoercionForm
 typedef struct FuncExpr
 {
    Expr        xpr;
-   Oid         funcid;         /* PG_PROC OID of the function */
-   Oid         funcresulttype; /* PG_TYPE OID of result value */
-   bool        funcretset;     /* true if function returns set */
-   bool        funcvariadic;   /* true if variadic arguments have been
-                                * combined into an array last argument */
-   CoercionForm funcformat;    /* how to display this function call */
-   Oid         funccollid;     /* OID of collation of result */
-   Oid         inputcollid;    /* OID of collation that function should use */
-   List       *args;           /* arguments to the function */
-   int         location;       /* token location, or -1 if unknown */
+   /* PG_PROC OID of the function */
+   Oid         funcid;
+   /* PG_TYPE OID of result value */
+   Oid         funcresulttype;
+   /* true if function returns set */
+   bool        funcretset;
+
+   /*
+    * true if variadic arguments have been combined into an array last
+    * argument
+    */
+   bool        funcvariadic;
+   /* how to display this function call */
+   CoercionForm funcformat;
+   /* OID of collation of result */
+   Oid         funccollid;
+   /* OID of collation that function should use */
+   Oid         inputcollid;
+   /* arguments to the function */
+   List       *args;
+   /* token location, or -1 if unknown */
+   int         location;
 } FuncExpr;
 
 /*
@@ -624,10 +679,14 @@ typedef struct FuncExpr
 typedef struct NamedArgExpr
 {
    Expr        xpr;
-   Expr       *arg;            /* the argument expression */
-   char       *name;           /* the name */
-   int         argnumber;      /* argument's number in positional notation */
-   int         location;       /* argument name location, or -1 if unknown */
+   /* the argument expression */
+   Expr       *arg;
+   /* the name */
+   char       *name;
+   /* argument's number in positional notation */
+   int         argnumber;
+   /* argument name location, or -1 if unknown */
+   int         location;
 } NamedArgExpr;
 
 /*
@@ -838,8 +897,10 @@ typedef struct SubLink
    SubLinkType subLinkType;    /* see above */
    int         subLinkId;      /* ID (1..n); 0 if not MULTIEXPR */
    Node       *testexpr;       /* outer-query test for ALL/ANY/ROWCOMPARE */
-   List       *operName;       /* originally specified operator name */
-   Node       *subselect;      /* subselect as Query* or raw parsetree */
+   /* originally specified operator name */
+   List       *operName;
+   /* subselect as Query* or raw parsetree */
+   Node       *subselect;
    int         location;       /* token location, or -1 if unknown */
 } SubLink;
 
@@ -948,10 +1009,12 @@ typedef struct FieldSelect
    Expr        xpr;
    Expr       *arg;            /* input expression */
    AttrNumber  fieldnum;       /* attribute number of field to extract */
-   Oid         resulttype;     /* type of the field (result type of this
-                                * node) */
-   int32       resulttypmod;   /* output typmod (usually -1) */
-   Oid         resultcollid;   /* OID of collation of the field */
+   /* type of the field (result type of this node) */
+   Oid         resulttype;
+   /* output typmod (usually -1) */
+   int32       resulttypmod;
+   /* OID of collation of the field */
+   Oid         resultcollid;
 } FieldSelect;
 
 /* ----------------
@@ -977,8 +1040,10 @@ typedef struct FieldStore
    Expr        xpr;
    Expr       *arg;            /* input tuple value */
    List       *newvals;        /* new value(s) for field(s) */
-   List       *fieldnums;      /* integer list of field attnums */
-   Oid         resulttype;     /* type of result (same as type of arg) */
+   /* integer list of field attnums */
+   List       *fieldnums;
+   /* type of result (same as type of arg) */
+   Oid         resulttype;
    /* Like RowExpr, we deliberately omit a typmod and collation here */
 } FieldStore;
 
@@ -1000,9 +1065,12 @@ typedef struct RelabelType
    Expr        xpr;
    Expr       *arg;            /* input expression */
    Oid         resulttype;     /* output type of coercion expression */
-   int32       resulttypmod;   /* output typmod (usually -1) */
-   Oid         resultcollid;   /* OID of collation, or InvalidOid if none */
-   CoercionForm relabelformat; /* how to display this node */
+   /* output typmod (usually -1) */
+   int32       resulttypmod;
+   /* OID of collation, or InvalidOid if none */
+   Oid         resultcollid;
+   /* how to display this node */
+   CoercionForm relabelformat;
    int         location;       /* token location, or -1 if unknown */
 } RelabelType;
 
@@ -1021,8 +1089,10 @@ typedef struct CoerceViaIO
    Expr       *arg;            /* input expression */
    Oid         resulttype;     /* output type of coercion */
    /* output typmod is not stored, but is presumed -1 */
-   Oid         resultcollid;   /* OID of collation, or InvalidOid if none */
-   CoercionForm coerceformat;  /* how to display this node */
+   /* OID of collation, or InvalidOid if none */
+   Oid         resultcollid;
+   /* how to display this node */
+   CoercionForm coerceformat;
    int         location;       /* token location, or -1 if unknown */
 } CoerceViaIO;
 
@@ -1045,9 +1115,12 @@ typedef struct ArrayCoerceExpr
    Expr       *arg;            /* input expression (yields an array) */
    Expr       *elemexpr;       /* expression representing per-element work */
    Oid         resulttype;     /* output type of coercion (an array type) */
-   int32       resulttypmod;   /* output typmod (also element typmod) */
-   Oid         resultcollid;   /* OID of collation, or InvalidOid if none */
-   CoercionForm coerceformat;  /* how to display this node */
+   /* output typmod (also element typmod) */
+   int32       resulttypmod;
+   /* OID of collation, or InvalidOid if none */
+   Oid         resultcollid;
+   /* how to display this node */
+   CoercionForm coerceformat;
    int         location;       /* token location, or -1 if unknown */
 } ArrayCoerceExpr;
 
@@ -1070,7 +1143,8 @@ typedef struct ConvertRowtypeExpr
    Expr       *arg;            /* input expression */
    Oid         resulttype;     /* output type (always a composite type) */
    /* Like RowExpr, we deliberately omit a typmod and collation here */
-   CoercionForm convertformat; /* how to display this node */
+   /* how to display this node */
+   CoercionForm convertformat;
    int         location;       /* token location, or -1 if unknown */
 } ConvertRowtypeExpr;
 
@@ -1114,8 +1188,10 @@ typedef struct CollateExpr
 typedef struct CaseExpr
 {
    Expr        xpr;
-   Oid         casetype;       /* type of expression result */
-   Oid         casecollid;     /* OID of collation, or InvalidOid if none */
+   /* type of expression result */
+   Oid         casetype;
+   /* OID of collation, or InvalidOid if none */
+   Oid         casecollid;
    Expr       *arg;            /* implicit equality comparison argument */
    List       *args;           /* the arguments (list of WHEN clauses) */
    Expr       *defresult;      /* the default result (ELSE clause) */
@@ -1157,8 +1233,10 @@ typedef struct CaseTestExpr
 {
    Expr        xpr;
    Oid         typeId;         /* type for substituted value */
-   int32       typeMod;        /* typemod for substituted value */
-   Oid         collation;      /* collation for the substituted value */
+   /* typemod for substituted value */
+   int32       typeMod;
+   /* collation for the substituted value */
+   Oid         collation;
 } CaseTestExpr;
 
 /*
@@ -1172,12 +1250,18 @@ typedef struct CaseTestExpr
 typedef struct ArrayExpr
 {
    Expr        xpr;
-   Oid         array_typeid;   /* type of expression result */
-   Oid         array_collid;   /* OID of collation, or InvalidOid if none */
-   Oid         element_typeid; /* common type of array elements */
-   List       *elements;       /* the array elements or sub-arrays */
-   bool        multidims;      /* true if elements are sub-arrays */
-   int         location;       /* token location, or -1 if unknown */
+   /* type of expression result */
+   Oid         array_typeid;
+   /* OID of collation, or InvalidOid if none */
+   Oid         array_collid;
+   /* common type of array elements */
+   Oid         element_typeid;
+   /* the array elements or sub-arrays */
+   List       *elements;
+   /* true if elements are sub-arrays */
+   bool        multidims;
+   /* token location, or -1 if unknown */
+   int         location;
 } ArrayExpr;
 
 /*
@@ -1205,7 +1289,9 @@ typedef struct RowExpr
 {
    Expr        xpr;
    List       *args;           /* the fields */
-   Oid         row_typeid;     /* RECORDOID or a composite type's ID */
+
+   /* RECORDOID or a composite type's ID */
+   Oid         row_typeid;
 
    /*
     * row_typeid cannot be a domain over composite, only plain composite.  To
@@ -1219,8 +1305,13 @@ typedef struct RowExpr
     * We don't need to store a collation either.  The result type is
     * necessarily composite, and composite types never have a collation.
     */
-   CoercionForm row_format;    /* how to display this node */
-   List       *colnames;       /* list of String, or NIL */
+
+   /* how to display this node */
+   CoercionForm row_format;
+
+   /* list of String, or NIL */
+   List       *colnames;
+
    int         location;       /* token location, or -1 if unknown */
 } RowExpr;
 
@@ -1252,12 +1343,19 @@ typedef enum RowCompareType
 typedef struct RowCompareExpr
 {
    Expr        xpr;
-   RowCompareType rctype;      /* LT LE GE or GT, never EQ or NE */
-   List       *opnos;          /* OID list of pairwise comparison ops */
-   List       *opfamilies;     /* OID list of containing operator families */
-   List       *inputcollids;   /* OID list of collations for comparisons */
-   List       *largs;          /* the left-hand input arguments */
-   List       *rargs;          /* the right-hand input arguments */
+
+   /* LT LE GE or GT, never EQ or NE */
+   RowCompareType rctype;
+   /* OID list of pairwise comparison ops */
+   List       *opnos;
+   /* OID list of containing operator families */
+   List       *opfamilies;
+   /* OID list of collations for comparisons */
+   List       *inputcollids;
+   /* the left-hand input arguments */
+   List       *largs;
+   /* the right-hand input arguments */
+   List       *rargs;
 } RowCompareExpr;
 
 /*
@@ -1266,10 +1364,14 @@ typedef struct RowCompareExpr
 typedef struct CoalesceExpr
 {
    Expr        xpr;
-   Oid         coalescetype;   /* type of expression result */
-   Oid         coalescecollid; /* OID of collation, or InvalidOid if none */
-   List       *args;           /* the arguments */
-   int         location;       /* token location, or -1 if unknown */
+   /* type of expression result */
+   Oid         coalescetype;
+   /* OID of collation, or InvalidOid if none */
+   Oid         coalescecollid;
+   /* the arguments */
+   List       *args;
+   /* token location, or -1 if unknown */
+   int         location;
 } CoalesceExpr;
 
 /*
@@ -1284,12 +1386,18 @@ typedef enum MinMaxOp
 typedef struct MinMaxExpr
 {
    Expr        xpr;
-   Oid         minmaxtype;     /* common type of arguments and result */
-   Oid         minmaxcollid;   /* OID of collation of result */
-   Oid         inputcollid;    /* OID of collation that function should use */
-   MinMaxOp    op;             /* function to execute */
-   List       *args;           /* the arguments */
-   int         location;       /* token location, or -1 if unknown */
+   /* common type of arguments and result */
+   Oid         minmaxtype;
+   /* OID of collation of result */
+   Oid         minmaxcollid;
+   /* OID of collation that function should use */
+   Oid         inputcollid;
+   /* function to execute */
+   MinMaxOp    op;
+   /* the arguments */
+   List       *args;
+   /* token location, or -1 if unknown */
+   int         location;
 } MinMaxExpr;
 
 /*
@@ -1324,15 +1432,23 @@ typedef enum XmlOptionType
 typedef struct XmlExpr
 {
    Expr        xpr;
-   XmlExprOp   op;             /* xml function ID */
-   char       *name;           /* name in xml(NAME foo ...) syntaxes */
-   List       *named_args;     /* non-XML expressions for xml_attributes */
-   List       *arg_names;      /* parallel list of String values */
-   List       *args;           /* list of expressions */
-   XmlOptionType xmloption;    /* DOCUMENT or CONTENT */
-   Oid         type;           /* target type/typmod for XMLSERIALIZE */
+   /* xml function ID */
+   XmlExprOp   op;
+   /* name in xml(NAME foo ...) syntaxes */
+   char       *name;
+   /* non-XML expressions for xml_attributes */
+   List       *named_args;
+   /* parallel list of String values */
+   List       *arg_names;
+   /* list of expressions */
+   List       *args;
+   /* DOCUMENT or CONTENT */
+   XmlOptionType xmloption;
+   /* target type/typmod for XMLSERIALIZE */
+   Oid         type;
    int32       typmod;
-   int         location;       /* token location, or -1 if unknown */
+   /* token location, or -1 if unknown */
+   int         location;
 } XmlExpr;
 
 /* ----------------
@@ -1364,7 +1480,8 @@ typedef struct NullTest
    Expr        xpr;
    Expr       *arg;            /* input expression */
    NullTestType nulltesttype;  /* IS NULL, IS NOT NULL */
-   bool        argisrow;       /* T to perform field-by-field null checks */
+   /* T to perform field-by-field null checks */
+   bool        argisrow;
    int         location;       /* token location, or -1 if unknown */
 } NullTest;
 
@@ -1404,9 +1521,12 @@ typedef struct CoerceToDomain
    Expr        xpr;
    Expr       *arg;            /* input expression */
    Oid         resulttype;     /* domain type ID (result type) */
-   int32       resulttypmod;   /* output typmod (currently always -1) */
-   Oid         resultcollid;   /* OID of collation, or InvalidOid if none */
-   CoercionForm coercionformat;    /* how to display this node */
+   /* output typmod (currently always -1) */
+   int32       resulttypmod;
+   /* OID of collation, or InvalidOid if none */
+   Oid         resultcollid;
+   /* how to display this node */
+   CoercionForm coercionformat;
    int         location;       /* token location, or -1 if unknown */
 } CoerceToDomain;
 
@@ -1422,10 +1542,14 @@ typedef struct CoerceToDomain
 typedef struct CoerceToDomainValue
 {
    Expr        xpr;
-   Oid         typeId;         /* type for substituted value */
-   int32       typeMod;        /* typemod for substituted value */
-   Oid         collation;      /* collation for the substituted value */
-   int         location;       /* token location, or -1 if unknown */
+   /* type for substituted value */
+   Oid         typeId;
+   /* typemod for substituted value */
+   int32       typeMod;
+   /* collation for the substituted value */
+   Oid         collation;
+   /* token location, or -1 if unknown */
+   int         location;
 } CoerceToDomainValue;
 
 /*
@@ -1438,10 +1562,14 @@ typedef struct CoerceToDomainValue
 typedef struct SetToDefault
 {
    Expr        xpr;
-   Oid         typeId;         /* type for substituted value */
-   int32       typeMod;        /* typemod for substituted value */
-   Oid         collation;      /* collation for the substituted value */
-   int         location;       /* token location, or -1 if unknown */
+   /* type for substituted value */
+   Oid         typeId;
+   /* typemod for substituted value */
+   int32       typeMod;
+   /* collation for the substituted value */
+   Oid         collation;
+   /* token location, or -1 if unknown */
+   int         location;
 } SetToDefault;
 
 /*
@@ -1552,15 +1680,20 @@ typedef struct InferenceElem
 typedef struct TargetEntry
 {
    Expr        xpr;
-   Expr       *expr;           /* expression to evaluate */
-   AttrNumber  resno;          /* attribute number (see notes above) */
-   char       *resname;        /* name of the column (could be NULL) */
-   Index       ressortgroupref;    /* nonzero if referenced by a sort/group
-                                    * clause */
-   Oid         resorigtbl;     /* OID of column's source table */
-   AttrNumber  resorigcol;     /* column's number in source table */
-   bool        resjunk;        /* set to true to eliminate the attribute from
-                                * final target list */
+   /* expression to evaluate */
+   Expr       *expr;
+   /* attribute number (see notes above) */
+   AttrNumber  resno;
+   /* name of the column (could be NULL) */
+   char       *resname;
+   /* nonzero if referenced by a sort/group clause */
+   Index       ressortgroupref;
+   /* OID of column's source table */
+   Oid         resorigtbl;
+   /* column's number in source table */
+   AttrNumber  resorigcol;
+   /* set to true to eliminate the attribute from final target list */
+   bool        resjunk;
 } TargetEntry;
 
 
@@ -1642,11 +1775,16 @@ typedef struct JoinExpr
    bool        isNatural;      /* Natural join? Will need to shape table */
    Node       *larg;           /* left subtree */
    Node       *rarg;           /* right subtree */
-   List       *usingClause;    /* USING clause, if any (list of String) */
-   Alias      *join_using_alias;   /* alias attached to USING clause, if any */
-   Node       *quals;          /* qualifiers on join, if any */
-   Alias      *alias;          /* user-written alias clause, if any */
-   int         rtindex;        /* RT index assigned for join, or 0 */
+   /* USING clause, if any (list of String) */
+   List       *usingClause;
+   /* alias attached to USING clause, if any */
+   Alias      *join_using_alias;
+   /* qualifiers on join, if any */
+   Node       *quals;
+   /* user-written alias clause, if any */
+   Alias      *alias;
+   /* RT index assigned for join, or 0 */
+   int         rtindex;
 } JoinExpr;
 
 /*----------