]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
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;
 
 /*----------