LCOV - code coverage report
Current view: top level - src/backend/nodes - outfuncs.funcs.c (source / functions) Coverage Total Hit
Test: PostgreSQL 20devel Lines: 71.9 % 4567 3285
Test Date: 2026-10-05 04:15:52 Functions: 82.2 % 377 310
Legend: Lines:     hit not hit
Branches: + taken - not taken # not executed
Branches: 55.9 % 1330 743

             Branch data     Line data    Source code
       1                 :             : /*-------------------------------------------------------------------------
       2                 :             :  *
       3                 :             :  * outfuncs.funcs.c
       4                 :             :  *    Generated node infrastructure code
       5                 :             :  *
       6                 :             :  * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
       7                 :             :  * Portions Copyright (c) 1994, Regents of the University of California
       8                 :             :  *
       9                 :             :  * NOTES
      10                 :             :  *  ******************************
      11                 :             :  *  *** DO NOT EDIT THIS FILE! ***
      12                 :             :  *  ******************************
      13                 :             :  *
      14                 :             :  *  It has been GENERATED by src/backend/nodes/gen_node_support.pl
      15                 :             :  *
      16                 :             :  *-------------------------------------------------------------------------
      17                 :             :  */
      18                 :             : #include "access/amapi.h"
      19                 :             : #include "access/cmptype.h"
      20                 :             : #include "access/sdir.h"
      21                 :             : #include "access/tableam.h"
      22                 :             : #include "access/tsmapi.h"
      23                 :             : #include "commands/event_trigger.h"
      24                 :             : #include "commands/trigger.h"
      25                 :             : #include "executor/tuptable.h"
      26                 :             : #include "foreign/fdwapi.h"
      27                 :             : #include "nodes/bitmapset.h"
      28                 :             : #include "nodes/execnodes.h"
      29                 :             : #include "nodes/extensible.h"
      30                 :             : #include "nodes/lockoptions.h"
      31                 :             : #include "nodes/miscnodes.h"
      32                 :             : #include "nodes/nodes.h"
      33                 :             : #include "nodes/parsenodes.h"
      34                 :             : #include "nodes/pathnodes.h"
      35                 :             : #include "nodes/plannodes.h"
      36                 :             : #include "nodes/primnodes.h"
      37                 :             : #include "nodes/replnodes.h"
      38                 :             : #include "nodes/supportnodes.h"
      39                 :             : #include "nodes/value.h"
      40                 :             : #include "utils/rel.h"
      41                 :             : 
      42                 :             : static void
      43                 :     1805861 : _outAlias(StringInfo str, const Alias *node)
      44                 :             : {
      45                 :     1805861 :     WRITE_NODE_TYPE("ALIAS");
      46                 :             : 
      47                 :     1805861 :     WRITE_STRING_FIELD(aliasname);
      48                 :     1805861 :     WRITE_NODE_FIELD(colnames);
      49                 :     1805861 : }
      50                 :             : 
      51                 :             : static void
      52                 :      555520 : _outRangeVar(StringInfo str, const RangeVar *node)
      53                 :             : {
      54                 :      555520 :     WRITE_NODE_TYPE("RANGEVAR");
      55                 :             : 
      56                 :      555520 :     WRITE_STRING_FIELD(catalogname);
      57                 :      555520 :     WRITE_STRING_FIELD(schemaname);
      58                 :      555520 :     WRITE_STRING_FIELD(relname);
      59         [ +  + ]:      555520 :     WRITE_BOOL_FIELD(inh);
      60                 :      555520 :     WRITE_CHAR_FIELD(relpersistence);
      61                 :      555520 :     WRITE_NODE_FIELD(alias);
      62         [ +  - ]:      555520 :     WRITE_LOCATION_FIELD(location);
      63                 :      555520 : }
      64                 :             : 
      65                 :             : static void
      66                 :        1010 : _outTableFunc(StringInfo str, const TableFunc *node)
      67                 :             : {
      68                 :        1010 :     WRITE_NODE_TYPE("TABLEFUNC");
      69                 :             : 
      70                 :        1010 :     WRITE_ENUM_FIELD(functype, TableFuncType);
      71                 :        1010 :     WRITE_NODE_FIELD(ns_uris);
      72                 :        1010 :     WRITE_NODE_FIELD(ns_names);
      73                 :        1010 :     WRITE_NODE_FIELD(docexpr);
      74                 :        1010 :     WRITE_NODE_FIELD(rowexpr);
      75                 :        1010 :     WRITE_NODE_FIELD(colnames);
      76                 :        1010 :     WRITE_NODE_FIELD(coltypes);
      77                 :        1010 :     WRITE_NODE_FIELD(coltypmods);
      78                 :        1010 :     WRITE_NODE_FIELD(colcollations);
      79                 :        1010 :     WRITE_NODE_FIELD(colexprs);
      80                 :        1010 :     WRITE_NODE_FIELD(coldefexprs);
      81                 :        1010 :     WRITE_NODE_FIELD(colvalexprs);
      82                 :        1010 :     WRITE_NODE_FIELD(passingvalexprs);
      83                 :        1010 :     WRITE_BITMAPSET_FIELD(notnulls);
      84                 :        1010 :     WRITE_NODE_FIELD(plan);
      85                 :        1010 :     WRITE_INT_FIELD(ordinalitycol);
      86         [ +  + ]:        1010 :     WRITE_LOCATION_FIELD(location);
      87                 :        1010 : }
      88                 :             : 
      89                 :             : static void
      90                 :        2627 : _outIntoClause(StringInfo str, const IntoClause *node)
      91                 :             : {
      92                 :        2627 :     WRITE_NODE_TYPE("INTOCLAUSE");
      93                 :             : 
      94                 :        2627 :     WRITE_NODE_FIELD(rel);
      95                 :        2627 :     WRITE_NODE_FIELD(colNames);
      96                 :        2627 :     WRITE_STRING_FIELD(accessMethod);
      97                 :        2627 :     WRITE_NODE_FIELD(options);
      98                 :        2627 :     WRITE_ENUM_FIELD(onCommit, OnCommitAction);
      99                 :        2627 :     WRITE_STRING_FIELD(tableSpaceName);
     100                 :        2627 :     WRITE_NODE_FIELD(viewQuery);
     101         [ +  + ]:        2627 :     WRITE_BOOL_FIELD(skipData);
     102                 :        2627 : }
     103                 :             : 
     104                 :             : static void
     105                 :     8209137 : _outVar(StringInfo str, const Var *node)
     106                 :             : {
     107                 :     8209137 :     WRITE_NODE_TYPE("VAR");
     108                 :             : 
     109                 :     8209137 :     WRITE_INT_FIELD(varno);
     110                 :     8209137 :     WRITE_INT_FIELD(varattno);
     111                 :     8209137 :     WRITE_OID_FIELD(vartype);
     112                 :     8209137 :     WRITE_INT_FIELD(vartypmod);
     113                 :     8209137 :     WRITE_OID_FIELD(varcollid);
     114                 :     8209137 :     WRITE_BITMAPSET_FIELD(varnullingrels);
     115                 :     8209137 :     WRITE_UINT_FIELD(varlevelsup);
     116                 :     8209137 :     WRITE_ENUM_FIELD(varreturningtype, VarReturningType);
     117                 :     8209137 :     WRITE_UINT_FIELD(varnosyn);
     118                 :     8209137 :     WRITE_INT_FIELD(varattnosyn);
     119         [ +  + ]:     8209137 :     WRITE_LOCATION_FIELD(location);
     120                 :     8209137 : }
     121                 :             : 
     122                 :             : static void
     123                 :      209305 : _outParam(StringInfo str, const Param *node)
     124                 :             : {
     125                 :      209305 :     WRITE_NODE_TYPE("PARAM");
     126                 :             : 
     127                 :      209305 :     WRITE_ENUM_FIELD(paramkind, ParamKind);
     128                 :      209305 :     WRITE_INT_FIELD(paramid);
     129                 :      209305 :     WRITE_OID_FIELD(paramtype);
     130                 :      209305 :     WRITE_INT_FIELD(paramtypmod);
     131                 :      209305 :     WRITE_OID_FIELD(paramcollid);
     132         [ +  + ]:      209305 :     WRITE_LOCATION_FIELD(location);
     133                 :      209305 : }
     134                 :             : 
     135                 :             : static void
     136                 :       68821 : _outAggref(StringInfo str, const Aggref *node)
     137                 :             : {
     138                 :       68821 :     WRITE_NODE_TYPE("AGGREF");
     139                 :             : 
     140                 :       68821 :     WRITE_OID_FIELD(aggfnoid);
     141                 :       68821 :     WRITE_OID_FIELD(aggtype);
     142                 :       68821 :     WRITE_OID_FIELD(aggcollid);
     143                 :       68821 :     WRITE_OID_FIELD(inputcollid);
     144                 :       68821 :     WRITE_OID_FIELD(aggtranstype);
     145                 :       68821 :     WRITE_NODE_FIELD(aggargtypes);
     146                 :       68821 :     WRITE_NODE_FIELD(aggdirectargs);
     147                 :       68821 :     WRITE_NODE_FIELD(args);
     148                 :       68821 :     WRITE_NODE_FIELD(aggorder);
     149                 :       68821 :     WRITE_NODE_FIELD(aggdistinct);
     150                 :       68821 :     WRITE_NODE_FIELD(aggfilter);
     151         [ +  + ]:       68821 :     WRITE_BOOL_FIELD(aggstar);
     152         [ +  + ]:       68821 :     WRITE_BOOL_FIELD(aggvariadic);
     153                 :       68821 :     WRITE_CHAR_FIELD(aggkind);
     154         [ +  + ]:       68821 :     WRITE_BOOL_FIELD(aggpresorted);
     155                 :       68821 :     WRITE_UINT_FIELD(agglevelsup);
     156                 :       68821 :     WRITE_ENUM_FIELD(aggsplit, AggSplit);
     157                 :       68821 :     WRITE_INT_FIELD(aggno);
     158                 :       68821 :     WRITE_INT_FIELD(aggtransno);
     159         [ +  + ]:       68821 :     WRITE_LOCATION_FIELD(location);
     160                 :       68821 : }
     161                 :             : 
     162                 :             : static void
     163                 :         748 : _outGroupingFunc(StringInfo str, const GroupingFunc *node)
     164                 :             : {
     165                 :         748 :     WRITE_NODE_TYPE("GROUPINGFUNC");
     166                 :             : 
     167                 :         748 :     WRITE_NODE_FIELD(args);
     168                 :         748 :     WRITE_NODE_FIELD(refs);
     169                 :         748 :     WRITE_NODE_FIELD(cols);
     170                 :         748 :     WRITE_UINT_FIELD(agglevelsup);
     171         [ +  + ]:         748 :     WRITE_LOCATION_FIELD(location);
     172                 :         748 : }
     173                 :             : 
     174                 :             : static void
     175                 :        5425 : _outWindowFunc(StringInfo str, const WindowFunc *node)
     176                 :             : {
     177                 :        5425 :     WRITE_NODE_TYPE("WINDOWFUNC");
     178                 :             : 
     179                 :        5425 :     WRITE_OID_FIELD(winfnoid);
     180                 :        5425 :     WRITE_OID_FIELD(wintype);
     181                 :        5425 :     WRITE_OID_FIELD(wincollid);
     182                 :        5425 :     WRITE_OID_FIELD(inputcollid);
     183                 :        5425 :     WRITE_NODE_FIELD(args);
     184                 :        5425 :     WRITE_NODE_FIELD(aggfilter);
     185                 :        5425 :     WRITE_NODE_FIELD(runCondition);
     186                 :        5425 :     WRITE_UINT_FIELD(winref);
     187         [ +  + ]:        5425 :     WRITE_BOOL_FIELD(winstar);
     188         [ +  + ]:        5425 :     WRITE_BOOL_FIELD(winagg);
     189                 :        5425 :     WRITE_INT_FIELD(ignore_nulls);
     190         [ +  + ]:        5425 :     WRITE_LOCATION_FIELD(location);
     191                 :        5425 : }
     192                 :             : 
     193                 :             : static void
     194                 :         280 : _outWindowFuncRunCondition(StringInfo str, const WindowFuncRunCondition *node)
     195                 :             : {
     196                 :         280 :     WRITE_NODE_TYPE("WINDOWFUNCRUNCONDITION");
     197                 :             : 
     198                 :         280 :     WRITE_OID_FIELD(opno);
     199                 :         280 :     WRITE_OID_FIELD(inputcollid);
     200         [ +  + ]:         280 :     WRITE_BOOL_FIELD(wfunc_left);
     201                 :         280 :     WRITE_NODE_FIELD(arg);
     202                 :         280 : }
     203                 :             : 
     204                 :             : static void
     205                 :         599 : _outMergeSupportFunc(StringInfo str, const MergeSupportFunc *node)
     206                 :             : {
     207                 :         599 :     WRITE_NODE_TYPE("MERGESUPPORTFUNC");
     208                 :             : 
     209                 :         599 :     WRITE_OID_FIELD(msftype);
     210                 :         599 :     WRITE_OID_FIELD(msfcollid);
     211         [ +  + ]:         599 :     WRITE_LOCATION_FIELD(location);
     212                 :         599 : }
     213                 :             : 
     214                 :             : static void
     215                 :       26405 : _outSubscriptingRef(StringInfo str, const SubscriptingRef *node)
     216                 :             : {
     217                 :       26405 :     WRITE_NODE_TYPE("SUBSCRIPTINGREF");
     218                 :             : 
     219                 :       26405 :     WRITE_OID_FIELD(refcontainertype);
     220                 :       26405 :     WRITE_OID_FIELD(refelemtype);
     221                 :       26405 :     WRITE_OID_FIELD(refrestype);
     222                 :       26405 :     WRITE_INT_FIELD(reftypmod);
     223                 :       26405 :     WRITE_OID_FIELD(refcollid);
     224                 :       26405 :     WRITE_NODE_FIELD(refupperindexpr);
     225                 :       26405 :     WRITE_NODE_FIELD(reflowerindexpr);
     226                 :       26405 :     WRITE_NODE_FIELD(refexpr);
     227                 :       26405 :     WRITE_NODE_FIELD(refassgnexpr);
     228                 :       26405 : }
     229                 :             : 
     230                 :             : static void
     231                 :      486269 : _outFuncExpr(StringInfo str, const FuncExpr *node)
     232                 :             : {
     233                 :      486269 :     WRITE_NODE_TYPE("FUNCEXPR");
     234                 :             : 
     235                 :      486269 :     WRITE_OID_FIELD(funcid);
     236                 :      486269 :     WRITE_OID_FIELD(funcresulttype);
     237         [ +  + ]:      486269 :     WRITE_BOOL_FIELD(funcretset);
     238         [ +  + ]:      486269 :     WRITE_BOOL_FIELD(funcvariadic);
     239                 :      486269 :     WRITE_ENUM_FIELD(funcformat, CoercionForm);
     240                 :      486269 :     WRITE_OID_FIELD(funccollid);
     241                 :      486269 :     WRITE_OID_FIELD(inputcollid);
     242                 :      486269 :     WRITE_NODE_FIELD(args);
     243         [ +  + ]:      486269 :     WRITE_LOCATION_FIELD(location);
     244                 :      486269 : }
     245                 :             : 
     246                 :             : static void
     247                 :       50722 : _outNamedArgExpr(StringInfo str, const NamedArgExpr *node)
     248                 :             : {
     249                 :       50722 :     WRITE_NODE_TYPE("NAMEDARGEXPR");
     250                 :             : 
     251                 :       50722 :     WRITE_NODE_FIELD(arg);
     252                 :       50722 :     WRITE_STRING_FIELD(name);
     253                 :       50722 :     WRITE_INT_FIELD(argnumber);
     254         [ +  + ]:       50722 :     WRITE_LOCATION_FIELD(location);
     255                 :       50722 : }
     256                 :             : 
     257                 :             : static void
     258                 :     1006117 : _outOpExpr(StringInfo str, const OpExpr *node)
     259                 :             : {
     260                 :     1006117 :     WRITE_NODE_TYPE("OPEXPR");
     261                 :             : 
     262                 :     1006117 :     WRITE_OID_FIELD(opno);
     263                 :     1006117 :     WRITE_OID_FIELD(opfuncid);
     264                 :     1006117 :     WRITE_OID_FIELD(opresulttype);
     265         [ +  + ]:     1006117 :     WRITE_BOOL_FIELD(opretset);
     266                 :     1006117 :     WRITE_OID_FIELD(opcollid);
     267                 :     1006117 :     WRITE_OID_FIELD(inputcollid);
     268                 :     1006117 :     WRITE_NODE_FIELD(args);
     269         [ +  + ]:     1006117 :     WRITE_LOCATION_FIELD(location);
     270                 :     1006117 : }
     271                 :             : 
     272                 :             : static void
     273                 :        1296 : _outDistinctExpr(StringInfo str, const DistinctExpr *node)
     274                 :             : {
     275                 :        1296 :     WRITE_NODE_TYPE("DISTINCTEXPR");
     276                 :             : 
     277                 :        1296 :     WRITE_OID_FIELD(opno);
     278                 :        1296 :     WRITE_OID_FIELD(opfuncid);
     279                 :        1296 :     WRITE_OID_FIELD(opresulttype);
     280         [ -  + ]:        1296 :     WRITE_BOOL_FIELD(opretset);
     281                 :        1296 :     WRITE_OID_FIELD(opcollid);
     282                 :        1296 :     WRITE_OID_FIELD(inputcollid);
     283                 :        1296 :     WRITE_NODE_FIELD(args);
     284         [ +  + ]:        1296 :     WRITE_LOCATION_FIELD(location);
     285                 :        1296 : }
     286                 :             : 
     287                 :             : static void
     288                 :         737 : _outNullIfExpr(StringInfo str, const NullIfExpr *node)
     289                 :             : {
     290                 :         737 :     WRITE_NODE_TYPE("NULLIFEXPR");
     291                 :             : 
     292                 :         737 :     WRITE_OID_FIELD(opno);
     293                 :         737 :     WRITE_OID_FIELD(opfuncid);
     294                 :         737 :     WRITE_OID_FIELD(opresulttype);
     295         [ -  + ]:         737 :     WRITE_BOOL_FIELD(opretset);
     296                 :         737 :     WRITE_OID_FIELD(opcollid);
     297                 :         737 :     WRITE_OID_FIELD(inputcollid);
     298                 :         737 :     WRITE_NODE_FIELD(args);
     299         [ +  + ]:         737 :     WRITE_LOCATION_FIELD(location);
     300                 :         737 : }
     301                 :             : 
     302                 :             : static void
     303                 :       48144 : _outScalarArrayOpExpr(StringInfo str, const ScalarArrayOpExpr *node)
     304                 :             : {
     305                 :       48144 :     WRITE_NODE_TYPE("SCALARARRAYOPEXPR");
     306                 :             : 
     307                 :       48144 :     WRITE_OID_FIELD(opno);
     308                 :       48144 :     WRITE_OID_FIELD(opfuncid);
     309                 :       48144 :     WRITE_OID_FIELD(hashfuncid);
     310                 :       48144 :     WRITE_OID_FIELD(negfuncid);
     311         [ +  + ]:       48144 :     WRITE_BOOL_FIELD(useOr);
     312                 :       48144 :     WRITE_OID_FIELD(inputcollid);
     313                 :       48144 :     WRITE_NODE_FIELD(args);
     314         [ +  + ]:       48144 :     WRITE_LOCATION_FIELD(location);
     315                 :       48144 : }
     316                 :             : 
     317                 :             : static void
     318                 :       72218 : _outSubLink(StringInfo str, const SubLink *node)
     319                 :             : {
     320                 :       72218 :     WRITE_NODE_TYPE("SUBLINK");
     321                 :             : 
     322                 :       72218 :     WRITE_ENUM_FIELD(subLinkType, SubLinkType);
     323                 :       72218 :     WRITE_INT_FIELD(subLinkId);
     324                 :       72218 :     WRITE_NODE_FIELD(testexpr);
     325                 :       72218 :     WRITE_NODE_FIELD(operName);
     326                 :       72218 :     WRITE_NODE_FIELD(subselect);
     327         [ +  + ]:       72218 :     WRITE_LOCATION_FIELD(location);
     328                 :       72218 : }
     329                 :             : 
     330                 :             : static void
     331                 :       27292 : _outSubPlan(StringInfo str, const SubPlan *node)
     332                 :             : {
     333                 :       27292 :     WRITE_NODE_TYPE("SUBPLAN");
     334                 :             : 
     335                 :       27292 :     WRITE_ENUM_FIELD(subLinkType, SubLinkType);
     336                 :       27292 :     WRITE_NODE_FIELD(testexpr);
     337                 :       27292 :     WRITE_NODE_FIELD(paramIds);
     338                 :       27292 :     WRITE_INT_FIELD(plan_id);
     339                 :       27292 :     WRITE_STRING_FIELD(plan_name);
     340                 :       27292 :     WRITE_OID_FIELD(firstColType);
     341                 :       27292 :     WRITE_INT_FIELD(firstColTypmod);
     342                 :       27292 :     WRITE_OID_FIELD(firstColCollation);
     343         [ +  + ]:       27292 :     WRITE_BOOL_FIELD(isInitPlan);
     344         [ +  + ]:       27292 :     WRITE_BOOL_FIELD(useHashTable);
     345         [ +  + ]:       27292 :     WRITE_BOOL_FIELD(unknownEqFalse);
     346         [ +  + ]:       27292 :     WRITE_BOOL_FIELD(parallel_safe);
     347                 :       27292 :     WRITE_NODE_FIELD(setParam);
     348                 :       27292 :     WRITE_NODE_FIELD(parParam);
     349                 :       27292 :     WRITE_NODE_FIELD(args);
     350                 :       27292 :     WRITE_INT_FIELD(disabled_nodes);
     351                 :       27292 :     WRITE_FLOAT_FIELD(startup_cost);
     352                 :       27292 :     WRITE_FLOAT_FIELD(per_call_cost);
     353                 :       27292 : }
     354                 :             : 
     355                 :             : static void
     356                 :           0 : _outAlternativeSubPlan(StringInfo str, const AlternativeSubPlan *node)
     357                 :             : {
     358                 :           0 :     WRITE_NODE_TYPE("ALTERNATIVESUBPLAN");
     359                 :             : 
     360                 :           0 :     WRITE_NODE_FIELD(subplans);
     361                 :           0 : }
     362                 :             : 
     363                 :             : static void
     364                 :       49308 : _outFieldSelect(StringInfo str, const FieldSelect *node)
     365                 :             : {
     366                 :       49308 :     WRITE_NODE_TYPE("FIELDSELECT");
     367                 :             : 
     368                 :       49308 :     WRITE_NODE_FIELD(arg);
     369                 :       49308 :     WRITE_INT_FIELD(fieldnum);
     370                 :       49308 :     WRITE_OID_FIELD(resulttype);
     371                 :       49308 :     WRITE_INT_FIELD(resulttypmod);
     372                 :       49308 :     WRITE_OID_FIELD(resultcollid);
     373                 :       49308 : }
     374                 :             : 
     375                 :             : static void
     376                 :         574 : _outFieldStore(StringInfo str, const FieldStore *node)
     377                 :             : {
     378                 :         574 :     WRITE_NODE_TYPE("FIELDSTORE");
     379                 :             : 
     380                 :         574 :     WRITE_NODE_FIELD(arg);
     381                 :         574 :     WRITE_NODE_FIELD(newvals);
     382                 :         574 :     WRITE_NODE_FIELD(fieldnums);
     383                 :         574 :     WRITE_OID_FIELD(resulttype);
     384                 :         574 : }
     385                 :             : 
     386                 :             : static void
     387                 :      162161 : _outRelabelType(StringInfo str, const RelabelType *node)
     388                 :             : {
     389                 :      162161 :     WRITE_NODE_TYPE("RELABELTYPE");
     390                 :             : 
     391                 :      162161 :     WRITE_NODE_FIELD(arg);
     392                 :      162161 :     WRITE_OID_FIELD(resulttype);
     393                 :      162161 :     WRITE_INT_FIELD(resulttypmod);
     394                 :      162161 :     WRITE_OID_FIELD(resultcollid);
     395                 :      162161 :     WRITE_ENUM_FIELD(relabelformat, CoercionForm);
     396         [ +  + ]:      162161 :     WRITE_LOCATION_FIELD(location);
     397                 :      162161 : }
     398                 :             : 
     399                 :             : static void
     400                 :       35204 : _outCoerceViaIO(StringInfo str, const CoerceViaIO *node)
     401                 :             : {
     402                 :       35204 :     WRITE_NODE_TYPE("COERCEVIAIO");
     403                 :             : 
     404                 :       35204 :     WRITE_NODE_FIELD(arg);
     405                 :       35204 :     WRITE_OID_FIELD(resulttype);
     406                 :       35204 :     WRITE_OID_FIELD(resultcollid);
     407                 :       35204 :     WRITE_ENUM_FIELD(coerceformat, CoercionForm);
     408         [ +  + ]:       35204 :     WRITE_LOCATION_FIELD(location);
     409                 :       35204 : }
     410                 :             : 
     411                 :             : static void
     412                 :        6676 : _outArrayCoerceExpr(StringInfo str, const ArrayCoerceExpr *node)
     413                 :             : {
     414                 :        6676 :     WRITE_NODE_TYPE("ARRAYCOERCEEXPR");
     415                 :             : 
     416                 :        6676 :     WRITE_NODE_FIELD(arg);
     417                 :        6676 :     WRITE_NODE_FIELD(elemexpr);
     418                 :        6676 :     WRITE_OID_FIELD(resulttype);
     419                 :        6676 :     WRITE_INT_FIELD(resulttypmod);
     420                 :        6676 :     WRITE_OID_FIELD(resultcollid);
     421                 :        6676 :     WRITE_ENUM_FIELD(coerceformat, CoercionForm);
     422         [ +  + ]:        6676 :     WRITE_LOCATION_FIELD(location);
     423                 :        6676 : }
     424                 :             : 
     425                 :             : static void
     426                 :         555 : _outConvertRowtypeExpr(StringInfo str, const ConvertRowtypeExpr *node)
     427                 :             : {
     428                 :         555 :     WRITE_NODE_TYPE("CONVERTROWTYPEEXPR");
     429                 :             : 
     430                 :         555 :     WRITE_NODE_FIELD(arg);
     431                 :         555 :     WRITE_OID_FIELD(resulttype);
     432                 :         555 :     WRITE_ENUM_FIELD(convertformat, CoercionForm);
     433         [ +  - ]:         555 :     WRITE_LOCATION_FIELD(location);
     434                 :         555 : }
     435                 :             : 
     436                 :             : static void
     437                 :        6459 : _outCollateExpr(StringInfo str, const CollateExpr *node)
     438                 :             : {
     439                 :        6459 :     WRITE_NODE_TYPE("COLLATEEXPR");
     440                 :             : 
     441                 :        6459 :     WRITE_NODE_FIELD(arg);
     442                 :        6459 :     WRITE_OID_FIELD(collOid);
     443         [ +  + ]:        6459 :     WRITE_LOCATION_FIELD(location);
     444                 :        6459 : }
     445                 :             : 
     446                 :             : static void
     447                 :       91509 : _outCaseExpr(StringInfo str, const CaseExpr *node)
     448                 :             : {
     449                 :       91509 :     WRITE_NODE_TYPE("CASEEXPR");
     450                 :             : 
     451                 :       91509 :     WRITE_OID_FIELD(casetype);
     452                 :       91509 :     WRITE_OID_FIELD(casecollid);
     453                 :       91509 :     WRITE_NODE_FIELD(arg);
     454                 :       91509 :     WRITE_NODE_FIELD(args);
     455                 :       91509 :     WRITE_NODE_FIELD(defresult);
     456         [ +  + ]:       91509 :     WRITE_LOCATION_FIELD(location);
     457                 :       91509 : }
     458                 :             : 
     459                 :             : static void
     460                 :      187586 : _outCaseWhen(StringInfo str, const CaseWhen *node)
     461                 :             : {
     462                 :      187586 :     WRITE_NODE_TYPE("CASEWHEN");
     463                 :             : 
     464                 :      187586 :     WRITE_NODE_FIELD(expr);
     465                 :      187586 :     WRITE_NODE_FIELD(result);
     466         [ +  + ]:      187586 :     WRITE_LOCATION_FIELD(location);
     467                 :      187586 : }
     468                 :             : 
     469                 :             : static void
     470                 :       40534 : _outCaseTestExpr(StringInfo str, const CaseTestExpr *node)
     471                 :             : {
     472                 :       40534 :     WRITE_NODE_TYPE("CASETESTEXPR");
     473                 :             : 
     474                 :       40534 :     WRITE_OID_FIELD(typeId);
     475                 :       40534 :     WRITE_INT_FIELD(typeMod);
     476                 :       40534 :     WRITE_OID_FIELD(collation);
     477                 :       40534 : }
     478                 :             : 
     479                 :             : static void
     480                 :       21235 : _outArrayExpr(StringInfo str, const ArrayExpr *node)
     481                 :             : {
     482                 :       21235 :     WRITE_NODE_TYPE("ARRAYEXPR");
     483                 :             : 
     484                 :       21235 :     WRITE_OID_FIELD(array_typeid);
     485                 :       21235 :     WRITE_OID_FIELD(array_collid);
     486                 :       21235 :     WRITE_OID_FIELD(element_typeid);
     487                 :       21235 :     WRITE_NODE_FIELD(elements);
     488         [ +  + ]:       21235 :     WRITE_BOOL_FIELD(multidims);
     489         [ +  + ]:       21235 :     WRITE_LOCATION_FIELD(list_start);
     490         [ +  + ]:       21235 :     WRITE_LOCATION_FIELD(list_end);
     491         [ +  + ]:       21235 :     WRITE_LOCATION_FIELD(location);
     492                 :       21235 : }
     493                 :             : 
     494                 :             : static void
     495                 :        9367 : _outRowExpr(StringInfo str, const RowExpr *node)
     496                 :             : {
     497                 :        9367 :     WRITE_NODE_TYPE("ROWEXPR");
     498                 :             : 
     499                 :        9367 :     WRITE_NODE_FIELD(args);
     500                 :        9367 :     WRITE_OID_FIELD(row_typeid);
     501                 :        9367 :     WRITE_ENUM_FIELD(row_format, CoercionForm);
     502                 :        9367 :     WRITE_NODE_FIELD(colnames);
     503         [ +  + ]:        9367 :     WRITE_LOCATION_FIELD(location);
     504                 :        9367 : }
     505                 :             : 
     506                 :             : static void
     507                 :         604 : _outRowCompareExpr(StringInfo str, const RowCompareExpr *node)
     508                 :             : {
     509                 :         604 :     WRITE_NODE_TYPE("ROWCOMPAREEXPR");
     510                 :             : 
     511                 :         604 :     WRITE_ENUM_FIELD(cmptype, CompareType);
     512                 :         604 :     WRITE_NODE_FIELD(opnos);
     513                 :         604 :     WRITE_NODE_FIELD(opfamilies);
     514                 :         604 :     WRITE_NODE_FIELD(inputcollids);
     515                 :         604 :     WRITE_NODE_FIELD(largs);
     516                 :         604 :     WRITE_NODE_FIELD(rargs);
     517                 :         604 : }
     518                 :             : 
     519                 :             : static void
     520                 :        9849 : _outCoalesceExpr(StringInfo str, const CoalesceExpr *node)
     521                 :             : {
     522                 :        9849 :     WRITE_NODE_TYPE("COALESCEEXPR");
     523                 :             : 
     524                 :        9849 :     WRITE_OID_FIELD(coalescetype);
     525                 :        9849 :     WRITE_OID_FIELD(coalescecollid);
     526                 :        9849 :     WRITE_NODE_FIELD(args);
     527         [ +  + ]:        9849 :     WRITE_LOCATION_FIELD(location);
     528                 :        9849 : }
     529                 :             : 
     530                 :             : static void
     531                 :         635 : _outMinMaxExpr(StringInfo str, const MinMaxExpr *node)
     532                 :             : {
     533                 :         635 :     WRITE_NODE_TYPE("MINMAXEXPR");
     534                 :             : 
     535                 :         635 :     WRITE_OID_FIELD(minmaxtype);
     536                 :         635 :     WRITE_OID_FIELD(minmaxcollid);
     537                 :         635 :     WRITE_OID_FIELD(inputcollid);
     538                 :         635 :     WRITE_ENUM_FIELD(op, MinMaxOp);
     539                 :         635 :     WRITE_NODE_FIELD(args);
     540         [ +  + ]:         635 :     WRITE_LOCATION_FIELD(location);
     541                 :         635 : }
     542                 :             : 
     543                 :             : static void
     544                 :        8171 : _outSQLValueFunction(StringInfo str, const SQLValueFunction *node)
     545                 :             : {
     546                 :        8171 :     WRITE_NODE_TYPE("SQLVALUEFUNCTION");
     547                 :             : 
     548                 :        8171 :     WRITE_ENUM_FIELD(op, SQLValueFunctionOp);
     549                 :        8171 :     WRITE_OID_FIELD(type);
     550                 :        8171 :     WRITE_INT_FIELD(typmod);
     551         [ +  + ]:        8171 :     WRITE_LOCATION_FIELD(location);
     552                 :        8171 : }
     553                 :             : 
     554                 :             : static void
     555                 :        1094 : _outXmlExpr(StringInfo str, const XmlExpr *node)
     556                 :             : {
     557                 :        1094 :     WRITE_NODE_TYPE("XMLEXPR");
     558                 :             : 
     559                 :        1094 :     WRITE_ENUM_FIELD(op, XmlExprOp);
     560                 :        1094 :     WRITE_STRING_FIELD(name);
     561                 :        1094 :     WRITE_NODE_FIELD(named_args);
     562                 :        1094 :     WRITE_NODE_FIELD(arg_names);
     563                 :        1094 :     WRITE_NODE_FIELD(args);
     564                 :        1094 :     WRITE_ENUM_FIELD(xmloption, XmlOptionType);
     565         [ +  + ]:        1094 :     WRITE_BOOL_FIELD(indent);
     566                 :        1094 :     WRITE_OID_FIELD(type);
     567                 :        1094 :     WRITE_INT_FIELD(typmod);
     568         [ +  + ]:        1094 :     WRITE_LOCATION_FIELD(location);
     569                 :        1094 : }
     570                 :             : 
     571                 :             : static void
     572                 :       19018 : _outJsonFormat(StringInfo str, const JsonFormat *node)
     573                 :             : {
     574                 :       19018 :     WRITE_NODE_TYPE("JSONFORMAT");
     575                 :             : 
     576                 :       19018 :     WRITE_ENUM_FIELD(format_type, JsonFormatType);
     577                 :       19018 :     WRITE_ENUM_FIELD(encoding, JsonEncoding);
     578         [ +  + ]:       19018 :     WRITE_LOCATION_FIELD(location);
     579                 :       19018 : }
     580                 :             : 
     581                 :             : static void
     582                 :        8062 : _outJsonReturning(StringInfo str, const JsonReturning *node)
     583                 :             : {
     584                 :        8062 :     WRITE_NODE_TYPE("JSONRETURNING");
     585                 :             : 
     586                 :        8062 :     WRITE_NODE_FIELD(format);
     587                 :        8062 :     WRITE_OID_FIELD(typid);
     588                 :        8062 :     WRITE_INT_FIELD(typmod);
     589                 :        8062 : }
     590                 :             : 
     591                 :             : static void
     592                 :        4732 : _outJsonValueExpr(StringInfo str, const JsonValueExpr *node)
     593                 :             : {
     594                 :        4732 :     WRITE_NODE_TYPE("JSONVALUEEXPR");
     595                 :             : 
     596                 :        4732 :     WRITE_NODE_FIELD(raw_expr);
     597                 :        4732 :     WRITE_NODE_FIELD(formatted_expr);
     598                 :        4732 :     WRITE_NODE_FIELD(format);
     599                 :        4732 : }
     600                 :             : 
     601                 :             : static void
     602                 :        2140 : _outJsonConstructorExpr(StringInfo str, const JsonConstructorExpr *node)
     603                 :             : {
     604                 :        2140 :     WRITE_NODE_TYPE("JSONCONSTRUCTOREXPR");
     605                 :             : 
     606                 :        2140 :     WRITE_ENUM_FIELD(type, JsonConstructorType);
     607                 :        2140 :     WRITE_NODE_FIELD(args);
     608                 :        2140 :     WRITE_NODE_FIELD(func);
     609                 :        2140 :     WRITE_NODE_FIELD(coercion);
     610                 :        2140 :     WRITE_NODE_FIELD(returning);
     611                 :        2140 :     WRITE_NODE_FIELD(orig_query);
     612                 :        2140 :     WRITE_NODE_FIELD(format);
     613         [ +  + ]:        2140 :     WRITE_BOOL_FIELD(absent_on_null);
     614         [ +  + ]:        2140 :     WRITE_BOOL_FIELD(unique);
     615         [ +  + ]:        2140 :     WRITE_LOCATION_FIELD(location);
     616                 :        2140 : }
     617                 :             : 
     618                 :             : static void
     619                 :         832 : _outJsonIsPredicate(StringInfo str, const JsonIsPredicate *node)
     620                 :             : {
     621                 :         832 :     WRITE_NODE_TYPE("JSONISPREDICATE");
     622                 :             : 
     623                 :         832 :     WRITE_NODE_FIELD(expr);
     624                 :         832 :     WRITE_NODE_FIELD(format);
     625                 :         832 :     WRITE_ENUM_FIELD(item_type, JsonValueType);
     626         [ +  + ]:         832 :     WRITE_BOOL_FIELD(unique_keys);
     627                 :         832 :     WRITE_OID_FIELD(exprBaseType);
     628         [ +  + ]:         832 :     WRITE_LOCATION_FIELD(location);
     629                 :         832 : }
     630                 :             : 
     631                 :             : static void
     632                 :        8516 : _outJsonBehavior(StringInfo str, const JsonBehavior *node)
     633                 :             : {
     634                 :        8516 :     WRITE_NODE_TYPE("JSONBEHAVIOR");
     635                 :             : 
     636                 :        8516 :     WRITE_ENUM_FIELD(btype, JsonBehaviorType);
     637                 :        8516 :     WRITE_NODE_FIELD(expr);
     638         [ +  + ]:        8516 :     WRITE_BOOL_FIELD(coerce);
     639         [ +  + ]:        8516 :     WRITE_LOCATION_FIELD(location);
     640                 :        8516 : }
     641                 :             : 
     642                 :             : static void
     643                 :        4368 : _outJsonExpr(StringInfo str, const JsonExpr *node)
     644                 :             : {
     645                 :        4368 :     WRITE_NODE_TYPE("JSONEXPR");
     646                 :             : 
     647                 :        4368 :     WRITE_ENUM_FIELD(op, JsonExprOp);
     648                 :        4368 :     WRITE_STRING_FIELD(column_name);
     649                 :        4368 :     WRITE_NODE_FIELD(formatted_expr);
     650                 :        4368 :     WRITE_NODE_FIELD(format);
     651                 :        4368 :     WRITE_NODE_FIELD(path_spec);
     652                 :        4368 :     WRITE_NODE_FIELD(returning);
     653                 :        4368 :     WRITE_NODE_FIELD(passing_names);
     654                 :        4368 :     WRITE_NODE_FIELD(passing_values);
     655                 :        4368 :     WRITE_NODE_FIELD(on_empty);
     656                 :        4368 :     WRITE_NODE_FIELD(on_error);
     657         [ +  + ]:        4368 :     WRITE_BOOL_FIELD(use_io_coercion);
     658         [ +  + ]:        4368 :     WRITE_BOOL_FIELD(use_json_coercion);
     659                 :        4368 :     WRITE_ENUM_FIELD(wrapper, JsonWrapper);
     660         [ +  + ]:        4368 :     WRITE_BOOL_FIELD(omit_quotes);
     661                 :        4368 :     WRITE_OID_FIELD(collation);
     662         [ +  + ]:        4368 :     WRITE_LOCATION_FIELD(location);
     663                 :        4368 : }
     664                 :             : 
     665                 :             : static void
     666                 :        1280 : _outJsonTablePath(StringInfo str, const JsonTablePath *node)
     667                 :             : {
     668                 :        1280 :     WRITE_NODE_TYPE("JSONTABLEPATH");
     669                 :             : 
     670                 :        1280 :     WRITE_NODE_FIELD(value);
     671                 :        1280 :     WRITE_STRING_FIELD(name);
     672                 :        1280 : }
     673                 :             : 
     674                 :             : static void
     675                 :        1280 : _outJsonTablePathScan(StringInfo str, const JsonTablePathScan *node)
     676                 :             : {
     677                 :        1280 :     WRITE_NODE_TYPE("JSONTABLEPATHSCAN");
     678                 :             : 
     679                 :        1280 :     WRITE_NODE_FIELD(path);
     680         [ +  + ]:        1280 :     WRITE_BOOL_FIELD(errorOnError);
     681                 :        1280 :     WRITE_NODE_FIELD(child);
     682         [ +  + ]:        1280 :     WRITE_BOOL_FIELD(outerJoin);
     683                 :        1280 :     WRITE_INT_FIELD(colMin);
     684                 :        1280 :     WRITE_INT_FIELD(colMax);
     685                 :        1280 : }
     686                 :             : 
     687                 :             : static void
     688                 :         212 : _outJsonTableSiblingJoin(StringInfo str, const JsonTableSiblingJoin *node)
     689                 :             : {
     690                 :         212 :     WRITE_NODE_TYPE("JSONTABLESIBLINGJOIN");
     691                 :             : 
     692                 :         212 :     WRITE_NODE_FIELD(lplan);
     693                 :         212 :     WRITE_NODE_FIELD(rplan);
     694         [ +  + ]:         212 :     WRITE_BOOL_FIELD(cross);
     695                 :         212 : }
     696                 :             : 
     697                 :             : static void
     698                 :       36340 : _outNullTest(StringInfo str, const NullTest *node)
     699                 :             : {
     700                 :       36340 :     WRITE_NODE_TYPE("NULLTEST");
     701                 :             : 
     702                 :       36340 :     WRITE_NODE_FIELD(arg);
     703                 :       36340 :     WRITE_ENUM_FIELD(nulltesttype, NullTestType);
     704         [ +  + ]:       36340 :     WRITE_BOOL_FIELD(argisrow);
     705         [ +  + ]:       36340 :     WRITE_LOCATION_FIELD(location);
     706                 :       36340 : }
     707                 :             : 
     708                 :             : static void
     709                 :        2522 : _outBooleanTest(StringInfo str, const BooleanTest *node)
     710                 :             : {
     711                 :        2522 :     WRITE_NODE_TYPE("BOOLEANTEST");
     712                 :             : 
     713                 :        2522 :     WRITE_NODE_FIELD(arg);
     714                 :        2522 :     WRITE_ENUM_FIELD(booltesttype, BoolTestType);
     715         [ +  + ]:        2522 :     WRITE_LOCATION_FIELD(location);
     716                 :        2522 : }
     717                 :             : 
     718                 :             : static void
     719                 :        4427 : _outMergeAction(StringInfo str, const MergeAction *node)
     720                 :             : {
     721                 :        4427 :     WRITE_NODE_TYPE("MERGEACTION");
     722                 :             : 
     723                 :        4427 :     WRITE_ENUM_FIELD(matchKind, MergeMatchKind);
     724                 :        4427 :     WRITE_ENUM_FIELD(commandType, CmdType);
     725                 :        4427 :     WRITE_ENUM_FIELD(override, OverridingKind);
     726                 :        4427 :     WRITE_NODE_FIELD(qual);
     727                 :        4427 :     WRITE_NODE_FIELD(targetList);
     728                 :        4427 :     WRITE_NODE_FIELD(updateColnos);
     729                 :        4427 : }
     730                 :             : 
     731                 :             : static void
     732                 :       64167 : _outCoerceToDomain(StringInfo str, const CoerceToDomain *node)
     733                 :             : {
     734                 :       64167 :     WRITE_NODE_TYPE("COERCETODOMAIN");
     735                 :             : 
     736                 :       64167 :     WRITE_NODE_FIELD(arg);
     737                 :       64167 :     WRITE_OID_FIELD(resulttype);
     738                 :       64167 :     WRITE_INT_FIELD(resulttypmod);
     739                 :       64167 :     WRITE_OID_FIELD(resultcollid);
     740                 :       64167 :     WRITE_ENUM_FIELD(coercionformat, CoercionForm);
     741         [ +  + ]:       64167 :     WRITE_LOCATION_FIELD(location);
     742                 :       64167 : }
     743                 :             : 
     744                 :             : static void
     745                 :         558 : _outCoerceToDomainValue(StringInfo str, const CoerceToDomainValue *node)
     746                 :             : {
     747                 :         558 :     WRITE_NODE_TYPE("COERCETODOMAINVALUE");
     748                 :             : 
     749                 :         558 :     WRITE_OID_FIELD(typeId);
     750                 :         558 :     WRITE_INT_FIELD(typeMod);
     751                 :         558 :     WRITE_OID_FIELD(collation);
     752         [ -  + ]:         558 :     WRITE_LOCATION_FIELD(location);
     753                 :         558 : }
     754                 :             : 
     755                 :             : static void
     756                 :        1020 : _outSetToDefault(StringInfo str, const SetToDefault *node)
     757                 :             : {
     758                 :        1020 :     WRITE_NODE_TYPE("SETTODEFAULT");
     759                 :             : 
     760                 :        1020 :     WRITE_OID_FIELD(typeId);
     761                 :        1020 :     WRITE_INT_FIELD(typeMod);
     762                 :        1020 :     WRITE_OID_FIELD(collation);
     763         [ +  + ]:        1020 :     WRITE_LOCATION_FIELD(location);
     764                 :        1020 : }
     765                 :             : 
     766                 :             : static void
     767                 :         621 : _outCurrentOfExpr(StringInfo str, const CurrentOfExpr *node)
     768                 :             : {
     769                 :         621 :     WRITE_NODE_TYPE("CURRENTOFEXPR");
     770                 :             : 
     771                 :         621 :     WRITE_UINT_FIELD(cvarno);
     772                 :         621 :     WRITE_STRING_FIELD(cursor_name);
     773                 :         621 :     WRITE_INT_FIELD(cursor_param);
     774                 :         621 : }
     775                 :             : 
     776                 :             : static void
     777                 :         570 : _outNextValueExpr(StringInfo str, const NextValueExpr *node)
     778                 :             : {
     779                 :         570 :     WRITE_NODE_TYPE("NEXTVALUEEXPR");
     780                 :             : 
     781                 :         570 :     WRITE_OID_FIELD(seqid);
     782                 :         570 :     WRITE_OID_FIELD(typeId);
     783                 :         570 : }
     784                 :             : 
     785                 :             : static void
     786                 :        1575 : _outInferenceElem(StringInfo str, const InferenceElem *node)
     787                 :             : {
     788                 :        1575 :     WRITE_NODE_TYPE("INFERENCEELEM");
     789                 :             : 
     790                 :        1575 :     WRITE_NODE_FIELD(expr);
     791                 :        1575 :     WRITE_OID_FIELD(infercollid);
     792                 :        1575 :     WRITE_OID_FIELD(inferopclass);
     793                 :        1575 : }
     794                 :             : 
     795                 :             : static void
     796                 :         868 : _outReturningExpr(StringInfo str, const ReturningExpr *node)
     797                 :             : {
     798                 :         868 :     WRITE_NODE_TYPE("RETURNINGEXPR");
     799                 :             : 
     800                 :         868 :     WRITE_INT_FIELD(retlevelsup);
     801         [ +  + ]:         868 :     WRITE_BOOL_FIELD(retold);
     802                 :         868 :     WRITE_NODE_FIELD(retexpr);
     803                 :         868 : }
     804                 :             : 
     805                 :             : static void
     806                 :     4717316 : _outTargetEntry(StringInfo str, const TargetEntry *node)
     807                 :             : {
     808                 :     4717316 :     WRITE_NODE_TYPE("TARGETENTRY");
     809                 :             : 
     810                 :     4717316 :     WRITE_NODE_FIELD(expr);
     811                 :     4717316 :     WRITE_INT_FIELD(resno);
     812                 :     4717316 :     WRITE_STRING_FIELD(resname);
     813                 :     4717316 :     WRITE_UINT_FIELD(ressortgroupref);
     814                 :     4717316 :     WRITE_OID_FIELD(resorigtbl);
     815                 :     4717316 :     WRITE_INT_FIELD(resorigcol);
     816         [ +  + ]:     4717316 :     WRITE_BOOL_FIELD(resjunk);
     817                 :     4717316 : }
     818                 :             : 
     819                 :             : static void
     820                 :      385035 : _outRangeTblRef(StringInfo str, const RangeTblRef *node)
     821                 :             : {
     822                 :      385035 :     WRITE_NODE_TYPE("RANGETBLREF");
     823                 :             : 
     824                 :      385035 :     WRITE_INT_FIELD(rtindex);
     825                 :      385035 : }
     826                 :             : 
     827                 :             : static void
     828                 :      131911 : _outJoinExpr(StringInfo str, const JoinExpr *node)
     829                 :             : {
     830                 :      131911 :     WRITE_NODE_TYPE("JOINEXPR");
     831                 :             : 
     832                 :      131911 :     WRITE_ENUM_FIELD(jointype, JoinType);
     833         [ +  + ]:      131911 :     WRITE_BOOL_FIELD(isNatural);
     834                 :      131911 :     WRITE_NODE_FIELD(larg);
     835                 :      131911 :     WRITE_NODE_FIELD(rarg);
     836                 :      131911 :     WRITE_NODE_FIELD(usingClause);
     837                 :      131911 :     WRITE_NODE_FIELD(join_using_alias);
     838                 :      131911 :     WRITE_NODE_FIELD(quals);
     839                 :      131911 :     WRITE_NODE_FIELD(alias);
     840                 :      131911 :     WRITE_INT_FIELD(rtindex);
     841                 :      131911 : }
     842                 :             : 
     843                 :             : static void
     844                 :      394072 : _outFromExpr(StringInfo str, const FromExpr *node)
     845                 :             : {
     846                 :      394072 :     WRITE_NODE_TYPE("FROMEXPR");
     847                 :             : 
     848                 :      394072 :     WRITE_NODE_FIELD(fromlist);
     849                 :      394072 :     WRITE_NODE_FIELD(quals);
     850                 :      394072 : }
     851                 :             : 
     852                 :             : static void
     853                 :        1607 : _outOnConflictExpr(StringInfo str, const OnConflictExpr *node)
     854                 :             : {
     855                 :        1607 :     WRITE_NODE_TYPE("ONCONFLICTEXPR");
     856                 :             : 
     857                 :        1607 :     WRITE_ENUM_FIELD(action, OnConflictAction);
     858                 :        1607 :     WRITE_NODE_FIELD(arbiterElems);
     859                 :        1607 :     WRITE_NODE_FIELD(arbiterWhere);
     860                 :        1607 :     WRITE_OID_FIELD(constraint);
     861                 :        1607 :     WRITE_ENUM_FIELD(lockStrength, LockClauseStrength);
     862                 :        1607 :     WRITE_NODE_FIELD(onConflictSet);
     863                 :        1607 :     WRITE_NODE_FIELD(onConflictWhere);
     864                 :        1607 :     WRITE_INT_FIELD(exclRelIndex);
     865                 :        1607 :     WRITE_NODE_FIELD(exclRelTlist);
     866                 :        1607 : }
     867                 :             : 
     868                 :             : static void
     869                 :      636096 : _outQuery(StringInfo str, const Query *node)
     870                 :             : {
     871                 :      636096 :     WRITE_NODE_TYPE("QUERY");
     872                 :             : 
     873                 :      636096 :     WRITE_ENUM_FIELD(commandType, CmdType);
     874                 :      636096 :     WRITE_ENUM_FIELD(querySource, QuerySource);
     875         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(canSetTag);
     876                 :      636096 :     WRITE_NODE_FIELD(utilityStmt);
     877                 :      636096 :     WRITE_INT_FIELD(resultRelation);
     878         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasAggs);
     879         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasWindowFuncs);
     880         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasTargetSRFs);
     881         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasSubLinks);
     882         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasDistinctOn);
     883         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasRecursive);
     884         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasModifyingCTE);
     885         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasForUpdate);
     886         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasRowSecurity);
     887         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(hasGroupRTE);
     888         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(isReturn);
     889                 :      636096 :     WRITE_NODE_FIELD(cteList);
     890                 :      636096 :     WRITE_NODE_FIELD(rtable);
     891                 :      636096 :     WRITE_NODE_FIELD(rteperminfos);
     892                 :      636096 :     WRITE_NODE_FIELD(jointree);
     893                 :      636096 :     WRITE_NODE_FIELD(mergeActionList);
     894                 :      636096 :     WRITE_INT_FIELD(mergeTargetRelation);
     895                 :      636096 :     WRITE_NODE_FIELD(mergeJoinCondition);
     896                 :      636096 :     WRITE_NODE_FIELD(targetList);
     897                 :      636096 :     WRITE_ENUM_FIELD(override, OverridingKind);
     898                 :      636096 :     WRITE_NODE_FIELD(onConflict);
     899                 :      636096 :     WRITE_STRING_FIELD(returningOldAlias);
     900                 :      636096 :     WRITE_STRING_FIELD(returningNewAlias);
     901                 :      636096 :     WRITE_NODE_FIELD(returningList);
     902                 :      636096 :     WRITE_NODE_FIELD(groupClause);
     903         [ +  + ]:      636096 :     WRITE_BOOL_FIELD(groupDistinct);
     904                 :      636096 :     WRITE_NODE_FIELD(groupingSets);
     905                 :      636096 :     WRITE_NODE_FIELD(havingQual);
     906                 :      636096 :     WRITE_NODE_FIELD(windowClause);
     907                 :      636096 :     WRITE_NODE_FIELD(distinctClause);
     908                 :      636096 :     WRITE_NODE_FIELD(sortClause);
     909                 :      636096 :     WRITE_NODE_FIELD(limitOffset);
     910                 :      636096 :     WRITE_NODE_FIELD(limitCount);
     911                 :      636096 :     WRITE_ENUM_FIELD(limitOption, LimitOption);
     912                 :      636096 :     WRITE_NODE_FIELD(rowMarks);
     913                 :      636096 :     WRITE_NODE_FIELD(setOperations);
     914                 :      636096 :     WRITE_NODE_FIELD(constraintDeps);
     915                 :      636096 :     WRITE_NODE_FIELD(withCheckOptions);
     916         [ +  + ]:      636096 :     WRITE_LOCATION_FIELD(stmt_location);
     917         [ +  + ]:      636096 :     WRITE_LOCATION_FIELD(stmt_len);
     918                 :      636096 : }
     919                 :             : 
     920                 :             : static void
     921                 :      476844 : _outTypeName(StringInfo str, const TypeName *node)
     922                 :             : {
     923                 :      476844 :     WRITE_NODE_TYPE("TYPENAME");
     924                 :             : 
     925                 :      476844 :     WRITE_NODE_FIELD(names);
     926                 :      476844 :     WRITE_OID_FIELD(typeOid);
     927         [ +  + ]:      476844 :     WRITE_BOOL_FIELD(setof);
     928         [ +  + ]:      476844 :     WRITE_BOOL_FIELD(pct_type);
     929                 :      476844 :     WRITE_NODE_FIELD(typmods);
     930                 :      476844 :     WRITE_INT_FIELD(typemod);
     931                 :      476844 :     WRITE_NODE_FIELD(arrayBounds);
     932         [ +  - ]:      476844 :     WRITE_LOCATION_FIELD(location);
     933                 :      476844 : }
     934                 :             : 
     935                 :             : static void
     936                 :     1328059 : _outColumnRef(StringInfo str, const ColumnRef *node)
     937                 :             : {
     938                 :     1328059 :     WRITE_NODE_TYPE("COLUMNREF");
     939                 :             : 
     940                 :     1328059 :     WRITE_NODE_FIELD(fields);
     941         [ +  - ]:     1328059 :     WRITE_LOCATION_FIELD(location);
     942                 :     1328059 : }
     943                 :             : 
     944                 :             : static void
     945                 :       32419 : _outParamRef(StringInfo str, const ParamRef *node)
     946                 :             : {
     947                 :       32419 :     WRITE_NODE_TYPE("PARAMREF");
     948                 :             : 
     949                 :       32419 :     WRITE_INT_FIELD(number);
     950         [ +  - ]:       32419 :     WRITE_LOCATION_FIELD(location);
     951                 :       32419 : }
     952                 :             : 
     953                 :             : static void
     954                 :      228206 : _outTypeCast(StringInfo str, const TypeCast *node)
     955                 :             : {
     956                 :      228206 :     WRITE_NODE_TYPE("TYPECAST");
     957                 :             : 
     958                 :      228206 :     WRITE_NODE_FIELD(arg);
     959                 :      228206 :     WRITE_NODE_FIELD(typeName);
     960         [ +  - ]:      228206 :     WRITE_LOCATION_FIELD(location);
     961                 :      228206 : }
     962                 :             : 
     963                 :             : static void
     964                 :        7789 : _outCollateClause(StringInfo str, const CollateClause *node)
     965                 :             : {
     966                 :        7789 :     WRITE_NODE_TYPE("COLLATECLAUSE");
     967                 :             : 
     968                 :        7789 :     WRITE_NODE_FIELD(arg);
     969                 :        7789 :     WRITE_NODE_FIELD(collname);
     970         [ +  - ]:        7789 :     WRITE_LOCATION_FIELD(location);
     971                 :        7789 : }
     972                 :             : 
     973                 :             : static void
     974                 :       27967 : _outRoleSpec(StringInfo str, const RoleSpec *node)
     975                 :             : {
     976                 :       27967 :     WRITE_NODE_TYPE("ROLESPEC");
     977                 :             : 
     978                 :       27967 :     WRITE_ENUM_FIELD(roletype, RoleSpecType);
     979                 :       27967 :     WRITE_STRING_FIELD(rolename);
     980         [ +  - ]:       27967 :     WRITE_LOCATION_FIELD(location);
     981                 :       27967 : }
     982                 :             : 
     983                 :             : static void
     984                 :      266592 : _outFuncCall(StringInfo str, const FuncCall *node)
     985                 :             : {
     986                 :      266592 :     WRITE_NODE_TYPE("FUNCCALL");
     987                 :             : 
     988                 :      266592 :     WRITE_NODE_FIELD(funcname);
     989                 :      266592 :     WRITE_NODE_FIELD(args);
     990                 :      266592 :     WRITE_NODE_FIELD(agg_order);
     991                 :      266592 :     WRITE_NODE_FIELD(agg_filter);
     992                 :      266592 :     WRITE_NODE_FIELD(over);
     993                 :      266592 :     WRITE_INT_FIELD(ignore_nulls);
     994         [ +  + ]:      266592 :     WRITE_BOOL_FIELD(agg_within_group);
     995         [ +  + ]:      266592 :     WRITE_BOOL_FIELD(agg_star);
     996         [ +  + ]:      266592 :     WRITE_BOOL_FIELD(agg_distinct);
     997         [ +  + ]:      266592 :     WRITE_BOOL_FIELD(func_variadic);
     998                 :      266592 :     WRITE_ENUM_FIELD(funcformat, CoercionForm);
     999         [ +  - ]:      266592 :     WRITE_LOCATION_FIELD(location);
    1000                 :      266592 : }
    1001                 :             : 
    1002                 :             : static void
    1003                 :       46248 : _outA_Star(StringInfo str, const A_Star *node)
    1004                 :             : {
    1005                 :       46248 :     WRITE_NODE_TYPE("A_STAR");
    1006                 :             : 
    1007                 :       46248 : }
    1008                 :             : 
    1009                 :             : static void
    1010                 :       10236 : _outA_Indices(StringInfo str, const A_Indices *node)
    1011                 :             : {
    1012                 :       10236 :     WRITE_NODE_TYPE("A_INDICES");
    1013                 :             : 
    1014         [ +  + ]:       10236 :     WRITE_BOOL_FIELD(is_slice);
    1015                 :       10236 :     WRITE_NODE_FIELD(lidx);
    1016                 :       10236 :     WRITE_NODE_FIELD(uidx);
    1017                 :       10236 : }
    1018                 :             : 
    1019                 :             : static void
    1020                 :       25474 : _outA_Indirection(StringInfo str, const A_Indirection *node)
    1021                 :             : {
    1022                 :       25474 :     WRITE_NODE_TYPE("A_INDIRECTION");
    1023                 :             : 
    1024                 :       25474 :     WRITE_NODE_FIELD(arg);
    1025                 :       25474 :     WRITE_NODE_FIELD(indirection);
    1026                 :       25474 : }
    1027                 :             : 
    1028                 :             : static void
    1029                 :        5187 : _outA_ArrayExpr(StringInfo str, const A_ArrayExpr *node)
    1030                 :             : {
    1031                 :        5187 :     WRITE_NODE_TYPE("A_ARRAYEXPR");
    1032                 :             : 
    1033                 :        5187 :     WRITE_NODE_FIELD(elements);
    1034         [ +  - ]:        5187 :     WRITE_LOCATION_FIELD(list_start);
    1035         [ +  - ]:        5187 :     WRITE_LOCATION_FIELD(list_end);
    1036         [ +  - ]:        5187 :     WRITE_LOCATION_FIELD(location);
    1037                 :        5187 : }
    1038                 :             : 
    1039                 :             : static void
    1040                 :      828262 : _outResTarget(StringInfo str, const ResTarget *node)
    1041                 :             : {
    1042                 :      828262 :     WRITE_NODE_TYPE("RESTARGET");
    1043                 :             : 
    1044                 :      828262 :     WRITE_STRING_FIELD(name);
    1045                 :      828262 :     WRITE_NODE_FIELD(indirection);
    1046                 :      828262 :     WRITE_NODE_FIELD(val);
    1047         [ +  - ]:      828262 :     WRITE_LOCATION_FIELD(location);
    1048                 :      828262 : }
    1049                 :             : 
    1050                 :             : static void
    1051                 :         265 : _outMultiAssignRef(StringInfo str, const MultiAssignRef *node)
    1052                 :             : {
    1053                 :         265 :     WRITE_NODE_TYPE("MULTIASSIGNREF");
    1054                 :             : 
    1055                 :         265 :     WRITE_NODE_FIELD(source);
    1056                 :         265 :     WRITE_INT_FIELD(colno);
    1057                 :         265 :     WRITE_INT_FIELD(ncolumns);
    1058                 :         265 : }
    1059                 :             : 
    1060                 :             : static void
    1061                 :       72723 : _outSortBy(StringInfo str, const SortBy *node)
    1062                 :             : {
    1063                 :       72723 :     WRITE_NODE_TYPE("SORTBY");
    1064                 :             : 
    1065                 :       72723 :     WRITE_NODE_FIELD(node);
    1066                 :       72723 :     WRITE_ENUM_FIELD(sortby_dir, SortByDir);
    1067                 :       72723 :     WRITE_ENUM_FIELD(sortby_nulls, SortByNulls);
    1068                 :       72723 :     WRITE_NODE_FIELD(useOp);
    1069         [ +  - ]:       72723 :     WRITE_LOCATION_FIELD(location);
    1070                 :       72723 : }
    1071                 :             : 
    1072                 :             : static void
    1073                 :        3281 : _outWindowDef(StringInfo str, const WindowDef *node)
    1074                 :             : {
    1075                 :        3281 :     WRITE_NODE_TYPE("WINDOWDEF");
    1076                 :             : 
    1077                 :        3281 :     WRITE_STRING_FIELD(name);
    1078                 :        3281 :     WRITE_STRING_FIELD(refname);
    1079                 :        3281 :     WRITE_NODE_FIELD(partitionClause);
    1080                 :        3281 :     WRITE_NODE_FIELD(orderClause);
    1081                 :        3281 :     WRITE_INT_FIELD(frameOptions);
    1082                 :        3281 :     WRITE_NODE_FIELD(startOffset);
    1083                 :        3281 :     WRITE_NODE_FIELD(endOffset);
    1084         [ +  - ]:        3281 :     WRITE_LOCATION_FIELD(location);
    1085                 :        3281 : }
    1086                 :             : 
    1087                 :             : static void
    1088                 :       15789 : _outRangeSubselect(StringInfo str, const RangeSubselect *node)
    1089                 :             : {
    1090                 :       15789 :     WRITE_NODE_TYPE("RANGESUBSELECT");
    1091                 :             : 
    1092         [ +  + ]:       15789 :     WRITE_BOOL_FIELD(lateral);
    1093                 :       15789 :     WRITE_NODE_FIELD(subquery);
    1094                 :       15789 :     WRITE_NODE_FIELD(alias);
    1095                 :       15789 : }
    1096                 :             : 
    1097                 :             : static void
    1098                 :       33323 : _outRangeFunction(StringInfo str, const RangeFunction *node)
    1099                 :             : {
    1100                 :       33323 :     WRITE_NODE_TYPE("RANGEFUNCTION");
    1101                 :             : 
    1102         [ +  + ]:       33323 :     WRITE_BOOL_FIELD(lateral);
    1103         [ +  + ]:       33323 :     WRITE_BOOL_FIELD(ordinality);
    1104         [ +  + ]:       33323 :     WRITE_BOOL_FIELD(is_rowsfrom);
    1105                 :       33323 :     WRITE_NODE_FIELD(functions);
    1106                 :       33323 :     WRITE_NODE_FIELD(alias);
    1107                 :       33323 :     WRITE_NODE_FIELD(coldeflist);
    1108                 :       33323 : }
    1109                 :             : 
    1110                 :             : static void
    1111                 :         168 : _outRangeTableFunc(StringInfo str, const RangeTableFunc *node)
    1112                 :             : {
    1113                 :         168 :     WRITE_NODE_TYPE("RANGETABLEFUNC");
    1114                 :             : 
    1115         [ +  + ]:         168 :     WRITE_BOOL_FIELD(lateral);
    1116                 :         168 :     WRITE_NODE_FIELD(docexpr);
    1117                 :         168 :     WRITE_NODE_FIELD(rowexpr);
    1118                 :         168 :     WRITE_NODE_FIELD(namespaces);
    1119                 :         168 :     WRITE_NODE_FIELD(columns);
    1120                 :         168 :     WRITE_NODE_FIELD(alias);
    1121         [ +  - ]:         168 :     WRITE_LOCATION_FIELD(location);
    1122                 :         168 : }
    1123                 :             : 
    1124                 :             : static void
    1125                 :         582 : _outRangeTableFuncCol(StringInfo str, const RangeTableFuncCol *node)
    1126                 :             : {
    1127                 :         582 :     WRITE_NODE_TYPE("RANGETABLEFUNCCOL");
    1128                 :             : 
    1129                 :         582 :     WRITE_STRING_FIELD(colname);
    1130                 :         582 :     WRITE_NODE_FIELD(typeName);
    1131         [ +  + ]:         582 :     WRITE_BOOL_FIELD(for_ordinality);
    1132         [ +  + ]:         582 :     WRITE_BOOL_FIELD(is_not_null);
    1133                 :         582 :     WRITE_NODE_FIELD(colexpr);
    1134                 :         582 :     WRITE_NODE_FIELD(coldefexpr);
    1135         [ +  - ]:         582 :     WRITE_LOCATION_FIELD(location);
    1136                 :         582 : }
    1137                 :             : 
    1138                 :             : static void
    1139                 :         202 : _outRangeTableSample(StringInfo str, const RangeTableSample *node)
    1140                 :             : {
    1141                 :         202 :     WRITE_NODE_TYPE("RANGETABLESAMPLE");
    1142                 :             : 
    1143                 :         202 :     WRITE_NODE_FIELD(relation);
    1144                 :         202 :     WRITE_NODE_FIELD(method);
    1145                 :         202 :     WRITE_NODE_FIELD(args);
    1146                 :         202 :     WRITE_NODE_FIELD(repeatable);
    1147         [ +  - ]:         202 :     WRITE_LOCATION_FIELD(location);
    1148                 :         202 : }
    1149                 :             : 
    1150                 :             : static void
    1151                 :       93044 : _outColumnDef(StringInfo str, const ColumnDef *node)
    1152                 :             : {
    1153                 :       93044 :     WRITE_NODE_TYPE("COLUMNDEF");
    1154                 :             : 
    1155                 :       93044 :     WRITE_STRING_FIELD(colname);
    1156                 :       93044 :     WRITE_NODE_FIELD(typeName);
    1157                 :       93044 :     WRITE_STRING_FIELD(compression);
    1158                 :       93044 :     WRITE_INT_FIELD(inhcount);
    1159         [ +  + ]:       93044 :     WRITE_BOOL_FIELD(is_local);
    1160         [ -  + ]:       93044 :     WRITE_BOOL_FIELD(is_not_null);
    1161         [ -  + ]:       93044 :     WRITE_BOOL_FIELD(is_from_type);
    1162                 :       93044 :     WRITE_CHAR_FIELD(storage);
    1163                 :       93044 :     WRITE_STRING_FIELD(storage_name);
    1164                 :       93044 :     WRITE_NODE_FIELD(raw_default);
    1165                 :       93044 :     WRITE_NODE_FIELD(cooked_default);
    1166                 :       93044 :     WRITE_CHAR_FIELD(identity);
    1167                 :       93044 :     WRITE_NODE_FIELD(identitySequence);
    1168                 :       93044 :     WRITE_CHAR_FIELD(generated);
    1169                 :       93044 :     WRITE_NODE_FIELD(collClause);
    1170                 :       93044 :     WRITE_OID_FIELD(collOid);
    1171                 :       93044 :     WRITE_NODE_FIELD(constraints);
    1172                 :       93044 :     WRITE_NODE_FIELD(fdwoptions);
    1173         [ +  - ]:       93044 :     WRITE_LOCATION_FIELD(location);
    1174                 :       93044 : }
    1175                 :             : 
    1176                 :             : static void
    1177                 :        1068 : _outTableLikeClause(StringInfo str, const TableLikeClause *node)
    1178                 :             : {
    1179                 :        1068 :     WRITE_NODE_TYPE("TABLELIKECLAUSE");
    1180                 :             : 
    1181                 :        1068 :     WRITE_NODE_FIELD(relation);
    1182                 :        1068 :     WRITE_UINT_FIELD(options);
    1183                 :        1068 :     WRITE_OID_FIELD(relationOid);
    1184                 :        1068 : }
    1185                 :             : 
    1186                 :             : static void
    1187                 :       13632 : _outIndexElem(StringInfo str, const IndexElem *node)
    1188                 :             : {
    1189                 :       13632 :     WRITE_NODE_TYPE("INDEXELEM");
    1190                 :             : 
    1191                 :       13632 :     WRITE_STRING_FIELD(name);
    1192                 :       13632 :     WRITE_NODE_FIELD(expr);
    1193                 :       13632 :     WRITE_STRING_FIELD(indexcolname);
    1194                 :       13632 :     WRITE_NODE_FIELD(collation);
    1195                 :       13632 :     WRITE_NODE_FIELD(opclass);
    1196                 :       13632 :     WRITE_NODE_FIELD(opclassopts);
    1197                 :       13632 :     WRITE_ENUM_FIELD(ordering, SortByDir);
    1198                 :       13632 :     WRITE_ENUM_FIELD(nulls_ordering, SortByNulls);
    1199         [ +  - ]:       13632 :     WRITE_LOCATION_FIELD(location);
    1200                 :       13632 : }
    1201                 :             : 
    1202                 :             : static void
    1203                 :      435173 : _outDefElem(StringInfo str, const DefElem *node)
    1204                 :             : {
    1205                 :      435173 :     WRITE_NODE_TYPE("DEFELEM");
    1206                 :             : 
    1207                 :      435173 :     WRITE_STRING_FIELD(defnamespace);
    1208                 :      435173 :     WRITE_STRING_FIELD(defname);
    1209                 :      435173 :     WRITE_NODE_FIELD(arg);
    1210                 :      435173 :     WRITE_ENUM_FIELD(defaction, DefElemAction);
    1211         [ +  - ]:      435173 :     WRITE_LOCATION_FIELD(location);
    1212                 :      435173 : }
    1213                 :             : 
    1214                 :             : static void
    1215                 :        3971 : _outLockingClause(StringInfo str, const LockingClause *node)
    1216                 :             : {
    1217                 :        3971 :     WRITE_NODE_TYPE("LOCKINGCLAUSE");
    1218                 :             : 
    1219                 :        3971 :     WRITE_NODE_FIELD(lockedRels);
    1220                 :        3971 :     WRITE_ENUM_FIELD(strength, LockClauseStrength);
    1221                 :        3971 :     WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
    1222                 :        3971 : }
    1223                 :             : 
    1224                 :             : static void
    1225                 :         164 : _outXmlSerialize(StringInfo str, const XmlSerialize *node)
    1226                 :             : {
    1227                 :         164 :     WRITE_NODE_TYPE("XMLSERIALIZE");
    1228                 :             : 
    1229                 :         164 :     WRITE_ENUM_FIELD(xmloption, XmlOptionType);
    1230                 :         164 :     WRITE_NODE_FIELD(expr);
    1231                 :         164 :     WRITE_NODE_FIELD(typeName);
    1232         [ +  + ]:         164 :     WRITE_BOOL_FIELD(indent);
    1233         [ +  - ]:         164 :     WRITE_LOCATION_FIELD(location);
    1234                 :         164 : }
    1235                 :             : 
    1236                 :             : static void
    1237                 :        7485 : _outPartitionElem(StringInfo str, const PartitionElem *node)
    1238                 :             : {
    1239                 :        7485 :     WRITE_NODE_TYPE("PARTITIONELEM");
    1240                 :             : 
    1241                 :        7485 :     WRITE_STRING_FIELD(name);
    1242                 :        7485 :     WRITE_NODE_FIELD(expr);
    1243                 :        7485 :     WRITE_NODE_FIELD(collation);
    1244                 :        7485 :     WRITE_NODE_FIELD(opclass);
    1245         [ +  - ]:        7485 :     WRITE_LOCATION_FIELD(location);
    1246                 :        7485 : }
    1247                 :             : 
    1248                 :             : static void
    1249                 :        6841 : _outPartitionSpec(StringInfo str, const PartitionSpec *node)
    1250                 :             : {
    1251                 :        6841 :     WRITE_NODE_TYPE("PARTITIONSPEC");
    1252                 :             : 
    1253                 :        6841 :     WRITE_ENUM_FIELD(strategy, PartitionStrategy);
    1254                 :        6841 :     WRITE_NODE_FIELD(partParams);
    1255         [ +  - ]:        6841 :     WRITE_LOCATION_FIELD(location);
    1256                 :        6841 : }
    1257                 :             : 
    1258                 :             : static void
    1259                 :       21595 : _outPartitionBoundSpec(StringInfo str, const PartitionBoundSpec *node)
    1260                 :             : {
    1261                 :       21595 :     WRITE_NODE_TYPE("PARTITIONBOUNDSPEC");
    1262                 :             : 
    1263                 :       21595 :     WRITE_CHAR_FIELD(strategy);
    1264         [ +  + ]:       21595 :     WRITE_BOOL_FIELD(is_default);
    1265                 :       21595 :     WRITE_INT_FIELD(modulus);
    1266                 :       21595 :     WRITE_INT_FIELD(remainder);
    1267                 :       21595 :     WRITE_NODE_FIELD(listdatums);
    1268                 :       21595 :     WRITE_NODE_FIELD(lowerdatums);
    1269                 :       21595 :     WRITE_NODE_FIELD(upperdatums);
    1270         [ +  + ]:       21595 :     WRITE_LOCATION_FIELD(location);
    1271                 :       21595 : }
    1272                 :             : 
    1273                 :             : static void
    1274                 :        7966 : _outPartitionRangeDatum(StringInfo str, const PartitionRangeDatum *node)
    1275                 :             : {
    1276                 :        7966 :     WRITE_NODE_TYPE("PARTITIONRANGEDATUM");
    1277                 :             : 
    1278                 :        7966 :     WRITE_ENUM_FIELD(kind, PartitionRangeDatumKind);
    1279                 :        7966 :     WRITE_NODE_FIELD(value);
    1280         [ -  + ]:        7966 :     WRITE_LOCATION_FIELD(location);
    1281                 :        7966 : }
    1282                 :             : 
    1283                 :             : static void
    1284                 :        4468 : _outPartitionCmd(StringInfo str, const PartitionCmd *node)
    1285                 :             : {
    1286                 :        4468 :     WRITE_NODE_TYPE("PARTITIONCMD");
    1287                 :             : 
    1288                 :        4468 :     WRITE_NODE_FIELD(name);
    1289                 :        4468 :     WRITE_NODE_FIELD(bound);
    1290         [ +  + ]:        4468 :     WRITE_BOOL_FIELD(concurrent);
    1291                 :        4468 : }
    1292                 :             : 
    1293                 :             : static void
    1294                 :      667474 : _outRTEPermissionInfo(StringInfo str, const RTEPermissionInfo *node)
    1295                 :             : {
    1296                 :      667474 :     WRITE_NODE_TYPE("RTEPERMISSIONINFO");
    1297                 :             : 
    1298                 :      667474 :     WRITE_OID_FIELD(relid);
    1299         [ +  + ]:      667474 :     WRITE_BOOL_FIELD(inh);
    1300                 :      667474 :     WRITE_UINT64_FIELD(requiredPerms);
    1301                 :      667474 :     WRITE_OID_FIELD(checkAsUser);
    1302                 :      667474 :     WRITE_BITMAPSET_FIELD(selectedCols);
    1303                 :      667474 :     WRITE_BITMAPSET_FIELD(insertedCols);
    1304                 :      667474 :     WRITE_BITMAPSET_FIELD(updatedCols);
    1305                 :      667474 : }
    1306                 :             : 
    1307                 :             : static void
    1308                 :       65915 : _outRangeTblFunction(StringInfo str, const RangeTblFunction *node)
    1309                 :             : {
    1310                 :       65915 :     WRITE_NODE_TYPE("RANGETBLFUNCTION");
    1311                 :             : 
    1312                 :       65915 :     WRITE_NODE_FIELD(funcexpr);
    1313                 :       65915 :     WRITE_INT_FIELD(funccolcount);
    1314                 :       65915 :     WRITE_NODE_FIELD(funccolnames);
    1315                 :       65915 :     WRITE_NODE_FIELD(funccoltypes);
    1316                 :       65915 :     WRITE_NODE_FIELD(funccoltypmods);
    1317                 :       65915 :     WRITE_NODE_FIELD(funccolcollations);
    1318                 :       65915 :     WRITE_BITMAPSET_FIELD(funcparams);
    1319                 :       65915 : }
    1320                 :             : 
    1321                 :             : static void
    1322                 :         383 : _outTableSampleClause(StringInfo str, const TableSampleClause *node)
    1323                 :             : {
    1324                 :         383 :     WRITE_NODE_TYPE("TABLESAMPLECLAUSE");
    1325                 :             : 
    1326                 :         383 :     WRITE_OID_FIELD(tsmhandler);
    1327                 :         383 :     WRITE_NODE_FIELD(args);
    1328                 :         383 :     WRITE_NODE_FIELD(repeatable);
    1329                 :         383 : }
    1330                 :             : 
    1331                 :             : static void
    1332                 :        4045 : _outWithCheckOption(StringInfo str, const WithCheckOption *node)
    1333                 :             : {
    1334                 :        4045 :     WRITE_NODE_TYPE("WITHCHECKOPTION");
    1335                 :             : 
    1336                 :        4045 :     WRITE_ENUM_FIELD(kind, WCOKind);
    1337                 :        4045 :     WRITE_STRING_FIELD(relname);
    1338                 :        4045 :     WRITE_STRING_FIELD(polname);
    1339                 :        4045 :     WRITE_NODE_FIELD(qual);
    1340         [ +  + ]:        4045 :     WRITE_BOOL_FIELD(cascaded);
    1341                 :        4045 : }
    1342                 :             : 
    1343                 :             : static void
    1344                 :      107877 : _outSortGroupClause(StringInfo str, const SortGroupClause *node)
    1345                 :             : {
    1346                 :      107877 :     WRITE_NODE_TYPE("SORTGROUPCLAUSE");
    1347                 :             : 
    1348                 :      107877 :     WRITE_UINT_FIELD(tleSortGroupRef);
    1349                 :      107877 :     WRITE_OID_FIELD(eqop);
    1350                 :      107877 :     WRITE_OID_FIELD(sortop);
    1351         [ +  + ]:      107877 :     WRITE_BOOL_FIELD(reverse_sort);
    1352         [ +  + ]:      107877 :     WRITE_BOOL_FIELD(nulls_first);
    1353         [ +  + ]:      107877 :     WRITE_BOOL_FIELD(hashable);
    1354                 :      107877 : }
    1355                 :             : 
    1356                 :             : static void
    1357                 :        3514 : _outGroupingSet(StringInfo str, const GroupingSet *node)
    1358                 :             : {
    1359                 :        3514 :     WRITE_NODE_TYPE("GROUPINGSET");
    1360                 :             : 
    1361                 :        3514 :     WRITE_ENUM_FIELD(kind, GroupingSetKind);
    1362                 :        3514 :     WRITE_NODE_FIELD(content);
    1363         [ +  + ]:        3514 :     WRITE_LOCATION_FIELD(location);
    1364                 :        3514 : }
    1365                 :             : 
    1366                 :             : static void
    1367                 :        2182 : _outWindowClause(StringInfo str, const WindowClause *node)
    1368                 :             : {
    1369                 :        2182 :     WRITE_NODE_TYPE("WINDOWCLAUSE");
    1370                 :             : 
    1371                 :        2182 :     WRITE_STRING_FIELD(name);
    1372                 :        2182 :     WRITE_STRING_FIELD(refname);
    1373                 :        2182 :     WRITE_NODE_FIELD(partitionClause);
    1374                 :        2182 :     WRITE_NODE_FIELD(orderClause);
    1375                 :        2182 :     WRITE_INT_FIELD(frameOptions);
    1376                 :        2182 :     WRITE_NODE_FIELD(startOffset);
    1377                 :        2182 :     WRITE_NODE_FIELD(endOffset);
    1378                 :        2182 :     WRITE_OID_FIELD(startInRangeFunc);
    1379                 :        2182 :     WRITE_OID_FIELD(endInRangeFunc);
    1380                 :        2182 :     WRITE_OID_FIELD(inRangeColl);
    1381         [ +  + ]:        2182 :     WRITE_BOOL_FIELD(inRangeAsc);
    1382         [ +  + ]:        2182 :     WRITE_BOOL_FIELD(inRangeNullsFirst);
    1383                 :        2182 :     WRITE_UINT_FIELD(winref);
    1384         [ +  + ]:        2182 :     WRITE_BOOL_FIELD(copiedOrder);
    1385                 :        2182 : }
    1386                 :             : 
    1387                 :             : static void
    1388                 :        5055 : _outRowMarkClause(StringInfo str, const RowMarkClause *node)
    1389                 :             : {
    1390                 :        5055 :     WRITE_NODE_TYPE("ROWMARKCLAUSE");
    1391                 :             : 
    1392                 :        5055 :     WRITE_UINT_FIELD(rti);
    1393                 :        5055 :     WRITE_ENUM_FIELD(strength, LockClauseStrength);
    1394                 :        5055 :     WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
    1395         [ +  + ]:        5055 :     WRITE_BOOL_FIELD(pushedDown);
    1396                 :        5055 : }
    1397                 :             : 
    1398                 :             : static void
    1399                 :        2396 : _outWithClause(StringInfo str, const WithClause *node)
    1400                 :             : {
    1401                 :        2396 :     WRITE_NODE_TYPE("WITHCLAUSE");
    1402                 :             : 
    1403                 :        2396 :     WRITE_NODE_FIELD(ctes);
    1404         [ +  + ]:        2396 :     WRITE_BOOL_FIELD(recursive);
    1405         [ +  - ]:        2396 :     WRITE_LOCATION_FIELD(location);
    1406                 :        2396 : }
    1407                 :             : 
    1408                 :             : static void
    1409                 :        1495 : _outInferClause(StringInfo str, const InferClause *node)
    1410                 :             : {
    1411                 :        1495 :     WRITE_NODE_TYPE("INFERCLAUSE");
    1412                 :             : 
    1413                 :        1495 :     WRITE_NODE_FIELD(indexElems);
    1414                 :        1495 :     WRITE_NODE_FIELD(whereClause);
    1415                 :        1495 :     WRITE_STRING_FIELD(conname);
    1416         [ +  - ]:        1495 :     WRITE_LOCATION_FIELD(location);
    1417                 :        1495 : }
    1418                 :             : 
    1419                 :             : static void
    1420                 :        1651 : _outOnConflictClause(StringInfo str, const OnConflictClause *node)
    1421                 :             : {
    1422                 :        1651 :     WRITE_NODE_TYPE("ONCONFLICTCLAUSE");
    1423                 :             : 
    1424                 :        1651 :     WRITE_ENUM_FIELD(action, OnConflictAction);
    1425                 :        1651 :     WRITE_NODE_FIELD(infer);
    1426                 :        1651 :     WRITE_ENUM_FIELD(lockStrength, LockClauseStrength);
    1427                 :        1651 :     WRITE_NODE_FIELD(targetList);
    1428                 :        1651 :     WRITE_NODE_FIELD(whereClause);
    1429         [ +  - ]:        1651 :     WRITE_LOCATION_FIELD(location);
    1430                 :        1651 : }
    1431                 :             : 
    1432                 :             : static void
    1433                 :         144 : _outCTESearchClause(StringInfo str, const CTESearchClause *node)
    1434                 :             : {
    1435                 :         144 :     WRITE_NODE_TYPE("CTESEARCHCLAUSE");
    1436                 :             : 
    1437                 :         144 :     WRITE_NODE_FIELD(search_col_list);
    1438         [ +  + ]:         144 :     WRITE_BOOL_FIELD(search_breadth_first);
    1439                 :         144 :     WRITE_STRING_FIELD(search_seq_column);
    1440         [ +  + ]:         144 :     WRITE_LOCATION_FIELD(location);
    1441                 :         144 : }
    1442                 :             : 
    1443                 :             : static void
    1444                 :         148 : _outCTECycleClause(StringInfo str, const CTECycleClause *node)
    1445                 :             : {
    1446                 :         148 :     WRITE_NODE_TYPE("CTECYCLECLAUSE");
    1447                 :             : 
    1448                 :         148 :     WRITE_NODE_FIELD(cycle_col_list);
    1449                 :         148 :     WRITE_STRING_FIELD(cycle_mark_column);
    1450                 :         148 :     WRITE_NODE_FIELD(cycle_mark_value);
    1451                 :         148 :     WRITE_NODE_FIELD(cycle_mark_default);
    1452                 :         148 :     WRITE_STRING_FIELD(cycle_path_column);
    1453         [ +  + ]:         148 :     WRITE_LOCATION_FIELD(location);
    1454                 :         148 :     WRITE_OID_FIELD(cycle_mark_type);
    1455                 :         148 :     WRITE_INT_FIELD(cycle_mark_typmod);
    1456                 :         148 :     WRITE_OID_FIELD(cycle_mark_collation);
    1457                 :         148 :     WRITE_OID_FIELD(cycle_mark_neop);
    1458                 :         148 : }
    1459                 :             : 
    1460                 :             : static void
    1461                 :        6049 : _outCommonTableExpr(StringInfo str, const CommonTableExpr *node)
    1462                 :             : {
    1463                 :        6049 :     WRITE_NODE_TYPE("COMMONTABLEEXPR");
    1464                 :             : 
    1465                 :        6049 :     WRITE_STRING_FIELD(ctename);
    1466                 :        6049 :     WRITE_NODE_FIELD(aliascolnames);
    1467                 :        6049 :     WRITE_ENUM_FIELD(ctematerialized, CTEMaterialize);
    1468                 :        6049 :     WRITE_NODE_FIELD(ctequery);
    1469                 :        6049 :     WRITE_NODE_FIELD(search_clause);
    1470                 :        6049 :     WRITE_NODE_FIELD(cycle_clause);
    1471         [ +  + ]:        6049 :     WRITE_LOCATION_FIELD(location);
    1472         [ +  + ]:        6049 :     WRITE_BOOL_FIELD(cterecursive);
    1473                 :        6049 :     WRITE_INT_FIELD(cterefcount);
    1474                 :        6049 :     WRITE_NODE_FIELD(ctecolnames);
    1475                 :        6049 :     WRITE_NODE_FIELD(ctecoltypes);
    1476                 :        6049 :     WRITE_NODE_FIELD(ctecoltypmods);
    1477                 :        6049 :     WRITE_NODE_FIELD(ctecolcollations);
    1478                 :        6049 : }
    1479                 :             : 
    1480                 :             : static void
    1481                 :        2082 : _outMergeWhenClause(StringInfo str, const MergeWhenClause *node)
    1482                 :             : {
    1483                 :        2082 :     WRITE_NODE_TYPE("MERGEWHENCLAUSE");
    1484                 :             : 
    1485                 :        2082 :     WRITE_ENUM_FIELD(matchKind, MergeMatchKind);
    1486                 :        2082 :     WRITE_ENUM_FIELD(commandType, CmdType);
    1487                 :        2082 :     WRITE_ENUM_FIELD(override, OverridingKind);
    1488                 :        2082 :     WRITE_NODE_FIELD(condition);
    1489                 :        2082 :     WRITE_NODE_FIELD(targetList);
    1490                 :        2082 :     WRITE_NODE_FIELD(values);
    1491                 :        2082 : }
    1492                 :             : 
    1493                 :             : static void
    1494                 :         100 : _outReturningOption(StringInfo str, const ReturningOption *node)
    1495                 :             : {
    1496                 :         100 :     WRITE_NODE_TYPE("RETURNINGOPTION");
    1497                 :             : 
    1498                 :         100 :     WRITE_ENUM_FIELD(option, ReturningOptionKind);
    1499                 :         100 :     WRITE_STRING_FIELD(value);
    1500         [ +  - ]:         100 :     WRITE_LOCATION_FIELD(location);
    1501                 :         100 : }
    1502                 :             : 
    1503                 :             : static void
    1504                 :        2499 : _outReturningClause(StringInfo str, const ReturningClause *node)
    1505                 :             : {
    1506                 :        2499 :     WRITE_NODE_TYPE("RETURNINGCLAUSE");
    1507                 :             : 
    1508                 :        2499 :     WRITE_NODE_FIELD(options);
    1509                 :        2499 :     WRITE_NODE_FIELD(exprs);
    1510                 :        2499 : }
    1511                 :             : 
    1512                 :             : static void
    1513                 :         792 : _outTriggerTransition(StringInfo str, const TriggerTransition *node)
    1514                 :             : {
    1515                 :         792 :     WRITE_NODE_TYPE("TRIGGERTRANSITION");
    1516                 :             : 
    1517                 :         792 :     WRITE_STRING_FIELD(name);
    1518         [ +  + ]:         792 :     WRITE_BOOL_FIELD(isNew);
    1519         [ +  - ]:         792 :     WRITE_BOOL_FIELD(isTable);
    1520                 :         792 : }
    1521                 :             : 
    1522                 :             : static void
    1523                 :        1554 : _outJsonOutput(StringInfo str, const JsonOutput *node)
    1524                 :             : {
    1525                 :        1554 :     WRITE_NODE_TYPE("JSONOUTPUT");
    1526                 :             : 
    1527                 :        1554 :     WRITE_NODE_FIELD(typeName);
    1528                 :        1554 :     WRITE_NODE_FIELD(returning);
    1529                 :        1554 : }
    1530                 :             : 
    1531                 :             : static void
    1532                 :         440 : _outJsonArgument(StringInfo str, const JsonArgument *node)
    1533                 :             : {
    1534                 :         440 :     WRITE_NODE_TYPE("JSONARGUMENT");
    1535                 :             : 
    1536                 :         440 :     WRITE_NODE_FIELD(val);
    1537                 :         440 :     WRITE_STRING_FIELD(name);
    1538                 :         440 : }
    1539                 :             : 
    1540                 :             : static void
    1541                 :        1456 : _outJsonFuncExpr(StringInfo str, const JsonFuncExpr *node)
    1542                 :             : {
    1543                 :        1456 :     WRITE_NODE_TYPE("JSONFUNCEXPR");
    1544                 :             : 
    1545                 :        1456 :     WRITE_ENUM_FIELD(op, JsonExprOp);
    1546                 :        1456 :     WRITE_STRING_FIELD(column_name);
    1547                 :        1456 :     WRITE_NODE_FIELD(context_item);
    1548                 :        1456 :     WRITE_NODE_FIELD(pathspec);
    1549                 :        1456 :     WRITE_NODE_FIELD(passing);
    1550                 :        1456 :     WRITE_NODE_FIELD(output);
    1551                 :        1456 :     WRITE_NODE_FIELD(on_empty);
    1552                 :        1456 :     WRITE_NODE_FIELD(on_error);
    1553                 :        1456 :     WRITE_ENUM_FIELD(wrapper, JsonWrapper);
    1554                 :        1456 :     WRITE_ENUM_FIELD(quotes, JsonQuotes);
    1555         [ +  - ]:        1456 :     WRITE_LOCATION_FIELD(location);
    1556                 :        1456 : }
    1557                 :             : 
    1558                 :             : static void
    1559                 :        2260 : _outJsonTablePathSpec(StringInfo str, const JsonTablePathSpec *node)
    1560                 :             : {
    1561                 :        2260 :     WRITE_NODE_TYPE("JSONTABLEPATHSPEC");
    1562                 :             : 
    1563                 :        2260 :     WRITE_NODE_FIELD(string);
    1564                 :        2260 :     WRITE_STRING_FIELD(name);
    1565         [ +  - ]:        2260 :     WRITE_LOCATION_FIELD(name_location);
    1566         [ +  - ]:        2260 :     WRITE_LOCATION_FIELD(location);
    1567                 :        2260 : }
    1568                 :             : 
    1569                 :             : static void
    1570                 :         556 : _outJsonTablePlanSpec(StringInfo str, const JsonTablePlanSpec *node)
    1571                 :             : {
    1572                 :         556 :     WRITE_NODE_TYPE("JSONTABLEPLANSPEC");
    1573                 :             : 
    1574                 :         556 :     WRITE_ENUM_FIELD(plan_type, JsonTablePlanType);
    1575                 :         556 :     WRITE_ENUM_FIELD(join_type, JsonTablePlanJoinType);
    1576                 :         556 :     WRITE_STRING_FIELD(pathname);
    1577                 :         556 :     WRITE_NODE_FIELD(plan1);
    1578                 :         556 :     WRITE_NODE_FIELD(plan2);
    1579         [ +  - ]:         556 :     WRITE_LOCATION_FIELD(location);
    1580                 :         556 : }
    1581                 :             : 
    1582                 :             : static void
    1583                 :         544 : _outJsonTable(StringInfo str, const JsonTable *node)
    1584                 :             : {
    1585                 :         544 :     WRITE_NODE_TYPE("JSONTABLE");
    1586                 :             : 
    1587                 :         544 :     WRITE_NODE_FIELD(context_item);
    1588                 :         544 :     WRITE_NODE_FIELD(pathspec);
    1589                 :         544 :     WRITE_NODE_FIELD(passing);
    1590                 :         544 :     WRITE_NODE_FIELD(columns);
    1591                 :         544 :     WRITE_NODE_FIELD(planspec);
    1592                 :         544 :     WRITE_NODE_FIELD(on_error);
    1593                 :         544 :     WRITE_NODE_FIELD(alias);
    1594         [ -  + ]:         544 :     WRITE_BOOL_FIELD(lateral);
    1595         [ +  - ]:         544 :     WRITE_LOCATION_FIELD(location);
    1596                 :         544 : }
    1597                 :             : 
    1598                 :             : static void
    1599                 :        2080 : _outJsonTableColumn(StringInfo str, const JsonTableColumn *node)
    1600                 :             : {
    1601                 :        2080 :     WRITE_NODE_TYPE("JSONTABLECOLUMN");
    1602                 :             : 
    1603                 :        2080 :     WRITE_ENUM_FIELD(coltype, JsonTableColumnType);
    1604                 :        2080 :     WRITE_STRING_FIELD(name);
    1605                 :        2080 :     WRITE_NODE_FIELD(typeName);
    1606                 :        2080 :     WRITE_NODE_FIELD(pathspec);
    1607                 :        2080 :     WRITE_NODE_FIELD(format);
    1608                 :        2080 :     WRITE_ENUM_FIELD(wrapper, JsonWrapper);
    1609                 :        2080 :     WRITE_ENUM_FIELD(quotes, JsonQuotes);
    1610                 :        2080 :     WRITE_NODE_FIELD(columns);
    1611                 :        2080 :     WRITE_NODE_FIELD(on_empty);
    1612                 :        2080 :     WRITE_NODE_FIELD(on_error);
    1613         [ +  - ]:        2080 :     WRITE_LOCATION_FIELD(location);
    1614                 :        2080 : }
    1615                 :             : 
    1616                 :             : static void
    1617                 :         774 : _outJsonKeyValue(StringInfo str, const JsonKeyValue *node)
    1618                 :             : {
    1619                 :         774 :     WRITE_NODE_TYPE("JSONKEYVALUE");
    1620                 :             : 
    1621                 :         774 :     WRITE_NODE_FIELD(key);
    1622                 :         774 :     WRITE_NODE_FIELD(value);
    1623                 :         774 : }
    1624                 :             : 
    1625                 :             : static void
    1626                 :         108 : _outJsonParseExpr(StringInfo str, const JsonParseExpr *node)
    1627                 :             : {
    1628                 :         108 :     WRITE_NODE_TYPE("JSONPARSEEXPR");
    1629                 :             : 
    1630                 :         108 :     WRITE_NODE_FIELD(expr);
    1631                 :         108 :     WRITE_NODE_FIELD(output);
    1632         [ +  + ]:         108 :     WRITE_BOOL_FIELD(unique_keys);
    1633         [ +  - ]:         108 :     WRITE_LOCATION_FIELD(location);
    1634                 :         108 : }
    1635                 :             : 
    1636                 :             : static void
    1637                 :          70 : _outJsonScalarExpr(StringInfo str, const JsonScalarExpr *node)
    1638                 :             : {
    1639                 :          70 :     WRITE_NODE_TYPE("JSONSCALAREXPR");
    1640                 :             : 
    1641                 :          70 :     WRITE_NODE_FIELD(expr);
    1642                 :          70 :     WRITE_NODE_FIELD(output);
    1643         [ +  - ]:          70 :     WRITE_LOCATION_FIELD(location);
    1644                 :          70 : }
    1645                 :             : 
    1646                 :             : static void
    1647                 :          68 : _outJsonSerializeExpr(StringInfo str, const JsonSerializeExpr *node)
    1648                 :             : {
    1649                 :          68 :     WRITE_NODE_TYPE("JSONSERIALIZEEXPR");
    1650                 :             : 
    1651                 :          68 :     WRITE_NODE_FIELD(expr);
    1652                 :          68 :     WRITE_NODE_FIELD(output);
    1653         [ +  - ]:          68 :     WRITE_LOCATION_FIELD(location);
    1654                 :          68 : }
    1655                 :             : 
    1656                 :             : static void
    1657                 :         490 : _outJsonObjectConstructor(StringInfo str, const JsonObjectConstructor *node)
    1658                 :             : {
    1659                 :         490 :     WRITE_NODE_TYPE("JSONOBJECTCONSTRUCTOR");
    1660                 :             : 
    1661                 :         490 :     WRITE_NODE_FIELD(exprs);
    1662                 :         490 :     WRITE_NODE_FIELD(output);
    1663         [ +  + ]:         490 :     WRITE_BOOL_FIELD(absent_on_null);
    1664         [ +  + ]:         490 :     WRITE_BOOL_FIELD(unique);
    1665         [ +  - ]:         490 :     WRITE_LOCATION_FIELD(location);
    1666                 :         490 : }
    1667                 :             : 
    1668                 :             : static void
    1669                 :         316 : _outJsonArrayConstructor(StringInfo str, const JsonArrayConstructor *node)
    1670                 :             : {
    1671                 :         316 :     WRITE_NODE_TYPE("JSONARRAYCONSTRUCTOR");
    1672                 :             : 
    1673                 :         316 :     WRITE_NODE_FIELD(exprs);
    1674                 :         316 :     WRITE_NODE_FIELD(output);
    1675         [ +  + ]:         316 :     WRITE_BOOL_FIELD(absent_on_null);
    1676         [ +  - ]:         316 :     WRITE_LOCATION_FIELD(location);
    1677                 :         316 : }
    1678                 :             : 
    1679                 :             : static void
    1680                 :         116 : _outJsonArrayQueryConstructor(StringInfo str, const JsonArrayQueryConstructor *node)
    1681                 :             : {
    1682                 :         116 :     WRITE_NODE_TYPE("JSONARRAYQUERYCONSTRUCTOR");
    1683                 :             : 
    1684                 :         116 :     WRITE_NODE_FIELD(query);
    1685                 :         116 :     WRITE_NODE_FIELD(output);
    1686                 :         116 :     WRITE_NODE_FIELD(format);
    1687         [ +  - ]:         116 :     WRITE_BOOL_FIELD(absent_on_null);
    1688         [ +  - ]:         116 :     WRITE_LOCATION_FIELD(location);
    1689                 :         116 : }
    1690                 :             : 
    1691                 :             : static void
    1692                 :         332 : _outJsonAggConstructor(StringInfo str, const JsonAggConstructor *node)
    1693                 :             : {
    1694                 :         332 :     WRITE_NODE_TYPE("JSONAGGCONSTRUCTOR");
    1695                 :             : 
    1696                 :         332 :     WRITE_NODE_FIELD(output);
    1697                 :         332 :     WRITE_NODE_FIELD(agg_filter);
    1698                 :         332 :     WRITE_NODE_FIELD(agg_order);
    1699                 :         332 :     WRITE_NODE_FIELD(over);
    1700         [ +  - ]:         332 :     WRITE_LOCATION_FIELD(location);
    1701                 :         332 : }
    1702                 :             : 
    1703                 :             : static void
    1704                 :         172 : _outJsonObjectAgg(StringInfo str, const JsonObjectAgg *node)
    1705                 :             : {
    1706                 :         172 :     WRITE_NODE_TYPE("JSONOBJECTAGG");
    1707                 :             : 
    1708                 :         172 :     WRITE_NODE_FIELD(constructor);
    1709                 :         172 :     WRITE_NODE_FIELD(arg);
    1710         [ +  + ]:         172 :     WRITE_BOOL_FIELD(absent_on_null);
    1711         [ +  + ]:         172 :     WRITE_BOOL_FIELD(unique);
    1712                 :         172 : }
    1713                 :             : 
    1714                 :             : static void
    1715                 :         160 : _outJsonArrayAgg(StringInfo str, const JsonArrayAgg *node)
    1716                 :             : {
    1717                 :         160 :     WRITE_NODE_TYPE("JSONARRAYAGG");
    1718                 :             : 
    1719                 :         160 :     WRITE_NODE_FIELD(constructor);
    1720                 :         160 :     WRITE_NODE_FIELD(arg);
    1721         [ +  + ]:         160 :     WRITE_BOOL_FIELD(absent_on_null);
    1722                 :         160 : }
    1723                 :             : 
    1724                 :             : static void
    1725                 :      466306 : _outRawStmt(StringInfo str, const RawStmt *node)
    1726                 :             : {
    1727                 :      466306 :     WRITE_NODE_TYPE("RAWSTMT");
    1728                 :             : 
    1729                 :      466306 :     WRITE_NODE_FIELD(stmt);
    1730         [ +  - ]:      466306 :     WRITE_LOCATION_FIELD(stmt_location);
    1731         [ +  - ]:      466306 :     WRITE_LOCATION_FIELD(stmt_len);
    1732                 :      466306 : }
    1733                 :             : 
    1734                 :             : static void
    1735                 :       45045 : _outInsertStmt(StringInfo str, const InsertStmt *node)
    1736                 :             : {
    1737                 :       45045 :     WRITE_NODE_TYPE("INSERTSTMT");
    1738                 :             : 
    1739                 :       45045 :     WRITE_NODE_FIELD(relation);
    1740                 :       45045 :     WRITE_NODE_FIELD(cols);
    1741                 :       45045 :     WRITE_NODE_FIELD(selectStmt);
    1742                 :       45045 :     WRITE_NODE_FIELD(onConflictClause);
    1743                 :       45045 :     WRITE_NODE_FIELD(returningClause);
    1744                 :       45045 :     WRITE_NODE_FIELD(withClause);
    1745                 :       45045 :     WRITE_ENUM_FIELD(override, OverridingKind);
    1746                 :       45045 : }
    1747                 :             : 
    1748                 :             : static void
    1749                 :        2920 : _outDeleteStmt(StringInfo str, const DeleteStmt *node)
    1750                 :             : {
    1751                 :        2920 :     WRITE_NODE_TYPE("DELETESTMT");
    1752                 :             : 
    1753                 :        2920 :     WRITE_NODE_FIELD(relation);
    1754                 :        2920 :     WRITE_NODE_FIELD(usingClause);
    1755                 :        2920 :     WRITE_NODE_FIELD(whereClause);
    1756                 :        2920 :     WRITE_NODE_FIELD(returningClause);
    1757                 :        2920 :     WRITE_NODE_FIELD(withClause);
    1758                 :        2920 : }
    1759                 :             : 
    1760                 :             : static void
    1761                 :        8586 : _outUpdateStmt(StringInfo str, const UpdateStmt *node)
    1762                 :             : {
    1763                 :        8586 :     WRITE_NODE_TYPE("UPDATESTMT");
    1764                 :             : 
    1765                 :        8586 :     WRITE_NODE_FIELD(relation);
    1766                 :        8586 :     WRITE_NODE_FIELD(targetList);
    1767                 :        8586 :     WRITE_NODE_FIELD(whereClause);
    1768                 :        8586 :     WRITE_NODE_FIELD(fromClause);
    1769                 :        8586 :     WRITE_NODE_FIELD(returningClause);
    1770                 :        8586 :     WRITE_NODE_FIELD(withClause);
    1771                 :        8586 : }
    1772                 :             : 
    1773                 :             : static void
    1774                 :        1351 : _outMergeStmt(StringInfo str, const MergeStmt *node)
    1775                 :             : {
    1776                 :        1351 :     WRITE_NODE_TYPE("MERGESTMT");
    1777                 :             : 
    1778                 :        1351 :     WRITE_NODE_FIELD(relation);
    1779                 :        1351 :     WRITE_NODE_FIELD(sourceRelation);
    1780                 :        1351 :     WRITE_NODE_FIELD(joinCondition);
    1781                 :        1351 :     WRITE_NODE_FIELD(mergeWhenClauses);
    1782                 :        1351 :     WRITE_NODE_FIELD(returningClause);
    1783                 :        1351 :     WRITE_NODE_FIELD(withClause);
    1784                 :        1351 : }
    1785                 :             : 
    1786                 :             : static void
    1787                 :      343686 : _outSelectStmt(StringInfo str, const SelectStmt *node)
    1788                 :             : {
    1789                 :      343686 :     WRITE_NODE_TYPE("SELECTSTMT");
    1790                 :             : 
    1791                 :      343686 :     WRITE_NODE_FIELD(distinctClause);
    1792                 :      343686 :     WRITE_NODE_FIELD(intoClause);
    1793                 :      343686 :     WRITE_NODE_FIELD(targetList);
    1794                 :      343686 :     WRITE_NODE_FIELD(fromClause);
    1795                 :      343686 :     WRITE_NODE_FIELD(whereClause);
    1796                 :      343686 :     WRITE_NODE_FIELD(groupClause);
    1797         [ +  + ]:      343686 :     WRITE_BOOL_FIELD(groupDistinct);
    1798                 :      343686 :     WRITE_NODE_FIELD(havingClause);
    1799                 :      343686 :     WRITE_NODE_FIELD(windowClause);
    1800                 :      343686 :     WRITE_NODE_FIELD(valuesLists);
    1801                 :      343686 :     WRITE_NODE_FIELD(sortClause);
    1802                 :      343686 :     WRITE_NODE_FIELD(limitOffset);
    1803                 :      343686 :     WRITE_NODE_FIELD(limitCount);
    1804                 :      343686 :     WRITE_ENUM_FIELD(limitOption, LimitOption);
    1805                 :      343686 :     WRITE_NODE_FIELD(lockingClause);
    1806                 :      343686 :     WRITE_NODE_FIELD(withClause);
    1807                 :      343686 :     WRITE_ENUM_FIELD(op, SetOperation);
    1808         [ +  + ]:      343686 :     WRITE_BOOL_FIELD(all);
    1809                 :      343686 :     WRITE_NODE_FIELD(larg);
    1810                 :      343686 :     WRITE_NODE_FIELD(rarg);
    1811                 :      343686 : }
    1812                 :             : 
    1813                 :             : static void
    1814                 :       15483 : _outSetOperationStmt(StringInfo str, const SetOperationStmt *node)
    1815                 :             : {
    1816                 :       15483 :     WRITE_NODE_TYPE("SETOPERATIONSTMT");
    1817                 :             : 
    1818                 :       15483 :     WRITE_ENUM_FIELD(op, SetOperation);
    1819         [ +  + ]:       15483 :     WRITE_BOOL_FIELD(all);
    1820                 :       15483 :     WRITE_NODE_FIELD(larg);
    1821                 :       15483 :     WRITE_NODE_FIELD(rarg);
    1822                 :       15483 :     WRITE_NODE_FIELD(colTypes);
    1823                 :       15483 :     WRITE_NODE_FIELD(colTypmods);
    1824                 :       15483 :     WRITE_NODE_FIELD(colCollations);
    1825                 :       15483 :     WRITE_NODE_FIELD(groupClauses);
    1826                 :       15483 : }
    1827                 :             : 
    1828                 :             : static void
    1829                 :        5760 : _outReturnStmt(StringInfo str, const ReturnStmt *node)
    1830                 :             : {
    1831                 :        5760 :     WRITE_NODE_TYPE("RETURNSTMT");
    1832                 :             : 
    1833                 :        5760 :     WRITE_NODE_FIELD(returnval);
    1834                 :        5760 : }
    1835                 :             : 
    1836                 :             : static void
    1837                 :           0 : _outPLAssignStmt(StringInfo str, const PLAssignStmt *node)
    1838                 :             : {
    1839                 :           0 :     WRITE_NODE_TYPE("PLASSIGNSTMT");
    1840                 :             : 
    1841                 :           0 :     WRITE_STRING_FIELD(name);
    1842                 :           0 :     WRITE_NODE_FIELD(indirection);
    1843                 :           0 :     WRITE_INT_FIELD(nnames);
    1844                 :           0 :     WRITE_NODE_FIELD(val);
    1845         [ #  # ]:           0 :     WRITE_LOCATION_FIELD(location);
    1846                 :           0 : }
    1847                 :             : 
    1848                 :             : static void
    1849                 :        1467 : _outCreateSchemaStmt(StringInfo str, const CreateSchemaStmt *node)
    1850                 :             : {
    1851                 :        1467 :     WRITE_NODE_TYPE("CREATESCHEMASTMT");
    1852                 :             : 
    1853                 :        1467 :     WRITE_STRING_FIELD(schemaname);
    1854                 :        1467 :     WRITE_NODE_FIELD(authrole);
    1855                 :        1467 :     WRITE_NODE_FIELD(schemaElts);
    1856         [ +  + ]:        1467 :     WRITE_BOOL_FIELD(if_not_exists);
    1857                 :        1467 : }
    1858                 :             : 
    1859                 :             : static void
    1860                 :       39516 : _outAlterTableStmt(StringInfo str, const AlterTableStmt *node)
    1861                 :             : {
    1862                 :       39516 :     WRITE_NODE_TYPE("ALTERTABLESTMT");
    1863                 :             : 
    1864                 :       39516 :     WRITE_NODE_FIELD(relation);
    1865                 :       39516 :     WRITE_NODE_FIELD(cmds);
    1866                 :       39516 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    1867         [ +  + ]:       39516 :     WRITE_BOOL_FIELD(missing_ok);
    1868                 :       39516 : }
    1869                 :             : 
    1870                 :             : static void
    1871                 :       40890 : _outAlterTableCmd(StringInfo str, const AlterTableCmd *node)
    1872                 :             : {
    1873                 :       40890 :     WRITE_NODE_TYPE("ALTERTABLECMD");
    1874                 :             : 
    1875                 :       40890 :     WRITE_ENUM_FIELD(subtype, AlterTableType);
    1876                 :       40890 :     WRITE_STRING_FIELD(name);
    1877                 :       40890 :     WRITE_INT_FIELD(num);
    1878                 :       40890 :     WRITE_NODE_FIELD(newowner);
    1879                 :       40890 :     WRITE_NODE_FIELD(def);
    1880                 :       40890 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    1881         [ +  + ]:       40890 :     WRITE_BOOL_FIELD(missing_ok);
    1882         [ -  + ]:       40890 :     WRITE_BOOL_FIELD(recurse);
    1883                 :       40890 : }
    1884                 :             : 
    1885                 :             : static void
    1886                 :         672 : _outATAlterConstraint(StringInfo str, const ATAlterConstraint *node)
    1887                 :             : {
    1888                 :         672 :     WRITE_NODE_TYPE("ATALTERCONSTRAINT");
    1889                 :             : 
    1890                 :         672 :     WRITE_STRING_FIELD(conname);
    1891         [ +  + ]:         672 :     WRITE_BOOL_FIELD(alterEnforceability);
    1892         [ +  + ]:         672 :     WRITE_BOOL_FIELD(is_enforced);
    1893         [ +  + ]:         672 :     WRITE_BOOL_FIELD(alterDeferrability);
    1894         [ +  + ]:         672 :     WRITE_BOOL_FIELD(deferrable);
    1895         [ +  + ]:         672 :     WRITE_BOOL_FIELD(initdeferred);
    1896         [ +  + ]:         672 :     WRITE_BOOL_FIELD(alterInheritability);
    1897         [ +  + ]:         672 :     WRITE_BOOL_FIELD(noinherit);
    1898                 :         672 : }
    1899                 :             : 
    1900                 :             : static void
    1901                 :         642 : _outReplicaIdentityStmt(StringInfo str, const ReplicaIdentityStmt *node)
    1902                 :             : {
    1903                 :         642 :     WRITE_NODE_TYPE("REPLICAIDENTITYSTMT");
    1904                 :             : 
    1905                 :         642 :     WRITE_CHAR_FIELD(identity_type);
    1906                 :         642 :     WRITE_STRING_FIELD(name);
    1907                 :         642 : }
    1908                 :             : 
    1909                 :             : static void
    1910                 :           8 : _outAlterCollationStmt(StringInfo str, const AlterCollationStmt *node)
    1911                 :             : {
    1912                 :           8 :     WRITE_NODE_TYPE("ALTERCOLLATIONSTMT");
    1913                 :             : 
    1914                 :           8 :     WRITE_NODE_FIELD(collname);
    1915                 :           8 : }
    1916                 :             : 
    1917                 :             : static void
    1918                 :         388 : _outAlterDomainStmt(StringInfo str, const AlterDomainStmt *node)
    1919                 :             : {
    1920                 :         388 :     WRITE_NODE_TYPE("ALTERDOMAINSTMT");
    1921                 :             : 
    1922                 :         388 :     WRITE_ENUM_FIELD(subtype, AlterDomainType);
    1923                 :         388 :     WRITE_NODE_FIELD(typeName);
    1924                 :         388 :     WRITE_STRING_FIELD(name);
    1925                 :         388 :     WRITE_NODE_FIELD(def);
    1926                 :         388 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    1927         [ +  + ]:         388 :     WRITE_BOOL_FIELD(missing_ok);
    1928                 :         388 : }
    1929                 :             : 
    1930                 :             : static void
    1931                 :       16349 : _outGrantStmt(StringInfo str, const GrantStmt *node)
    1932                 :             : {
    1933                 :       16349 :     WRITE_NODE_TYPE("GRANTSTMT");
    1934                 :             : 
    1935         [ +  + ]:       16349 :     WRITE_BOOL_FIELD(is_grant);
    1936                 :       16349 :     WRITE_ENUM_FIELD(targtype, GrantTargetType);
    1937                 :       16349 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    1938                 :       16349 :     WRITE_NODE_FIELD(objects);
    1939                 :       16349 :     WRITE_NODE_FIELD(privileges);
    1940                 :       16349 :     WRITE_NODE_FIELD(grantees);
    1941         [ +  + ]:       16349 :     WRITE_BOOL_FIELD(grant_option);
    1942                 :       16349 :     WRITE_NODE_FIELD(grantor);
    1943                 :       16349 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    1944                 :       16349 : }
    1945                 :             : 
    1946                 :             : static void
    1947                 :       16692 : _outObjectWithArgs(StringInfo str, const ObjectWithArgs *node)
    1948                 :             : {
    1949                 :       16692 :     WRITE_NODE_TYPE("OBJECTWITHARGS");
    1950                 :             : 
    1951                 :       16692 :     WRITE_NODE_FIELD(objname);
    1952                 :       16692 :     WRITE_NODE_FIELD(objargs);
    1953                 :       16692 :     WRITE_NODE_FIELD(objfuncargs);
    1954         [ +  + ]:       16692 :     WRITE_BOOL_FIELD(args_unspecified);
    1955                 :       16692 : }
    1956                 :             : 
    1957                 :             : static void
    1958                 :       14543 : _outAccessPriv(StringInfo str, const AccessPriv *node)
    1959                 :             : {
    1960                 :       14543 :     WRITE_NODE_TYPE("ACCESSPRIV");
    1961                 :             : 
    1962                 :       14543 :     WRITE_STRING_FIELD(priv_name);
    1963                 :       14543 :     WRITE_NODE_FIELD(cols);
    1964                 :       14543 : }
    1965                 :             : 
    1966                 :             : static void
    1967                 :         840 : _outGrantRoleStmt(StringInfo str, const GrantRoleStmt *node)
    1968                 :             : {
    1969                 :         840 :     WRITE_NODE_TYPE("GRANTROLESTMT");
    1970                 :             : 
    1971                 :         840 :     WRITE_NODE_FIELD(granted_roles);
    1972                 :         840 :     WRITE_NODE_FIELD(grantee_roles);
    1973         [ +  + ]:         840 :     WRITE_BOOL_FIELD(is_grant);
    1974                 :         840 :     WRITE_NODE_FIELD(opt);
    1975                 :         840 :     WRITE_NODE_FIELD(grantor);
    1976                 :         840 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    1977                 :         840 : }
    1978                 :             : 
    1979                 :             : static void
    1980                 :         270 : _outAlterDefaultPrivilegesStmt(StringInfo str, const AlterDefaultPrivilegesStmt *node)
    1981                 :             : {
    1982                 :         270 :     WRITE_NODE_TYPE("ALTERDEFAULTPRIVILEGESSTMT");
    1983                 :             : 
    1984                 :         270 :     WRITE_NODE_FIELD(options);
    1985                 :         270 :     WRITE_NODE_FIELD(action);
    1986                 :         270 : }
    1987                 :             : 
    1988                 :             : static void
    1989                 :       13135 : _outCopyStmt(StringInfo str, const CopyStmt *node)
    1990                 :             : {
    1991                 :       13135 :     WRITE_NODE_TYPE("COPYSTMT");
    1992                 :             : 
    1993                 :       13135 :     WRITE_NODE_FIELD(relation);
    1994                 :       13135 :     WRITE_NODE_FIELD(query);
    1995                 :       13135 :     WRITE_NODE_FIELD(attlist);
    1996         [ +  + ]:       13135 :     WRITE_BOOL_FIELD(is_from);
    1997         [ +  + ]:       13135 :     WRITE_BOOL_FIELD(is_program);
    1998                 :       13135 :     WRITE_STRING_FIELD(filename);
    1999                 :       13135 :     WRITE_NODE_FIELD(options);
    2000                 :       13135 :     WRITE_NODE_FIELD(whereClause);
    2001                 :       13135 : }
    2002                 :             : 
    2003                 :             : static void
    2004                 :       37565 : _outVariableSetStmt(StringInfo str, const VariableSetStmt *node)
    2005                 :             : {
    2006                 :       37565 :     WRITE_NODE_TYPE("VARIABLESETSTMT");
    2007                 :             : 
    2008                 :       37565 :     WRITE_ENUM_FIELD(kind, VariableSetKind);
    2009                 :       37565 :     WRITE_STRING_FIELD(name);
    2010                 :       37565 :     WRITE_NODE_FIELD(args);
    2011         [ +  + ]:       37565 :     WRITE_BOOL_FIELD(jumble_args);
    2012         [ +  + ]:       37565 :     WRITE_BOOL_FIELD(is_local);
    2013         [ +  - ]:       37565 :     WRITE_LOCATION_FIELD(location);
    2014                 :       37565 : }
    2015                 :             : 
    2016                 :             : static void
    2017                 :        1162 : _outVariableShowStmt(StringInfo str, const VariableShowStmt *node)
    2018                 :             : {
    2019                 :        1162 :     WRITE_NODE_TYPE("VARIABLESHOWSTMT");
    2020                 :             : 
    2021                 :        1162 :     WRITE_STRING_FIELD(name);
    2022                 :        1162 : }
    2023                 :             : 
    2024                 :             : static void
    2025                 :       50461 : _outCreateStmt(StringInfo str, const CreateStmt *node)
    2026                 :             : {
    2027                 :       50461 :     WRITE_NODE_TYPE("CREATESTMT");
    2028                 :             : 
    2029                 :       50461 :     WRITE_NODE_FIELD(relation);
    2030                 :       50461 :     WRITE_NODE_FIELD(tableElts);
    2031                 :       50461 :     WRITE_NODE_FIELD(inhRelations);
    2032                 :       50461 :     WRITE_NODE_FIELD(partbound);
    2033                 :       50461 :     WRITE_NODE_FIELD(partspec);
    2034                 :       50461 :     WRITE_NODE_FIELD(ofTypename);
    2035                 :       50461 :     WRITE_NODE_FIELD(constraints);
    2036                 :       50461 :     WRITE_NODE_FIELD(nnconstraints);
    2037                 :       50461 :     WRITE_NODE_FIELD(options);
    2038                 :       50461 :     WRITE_ENUM_FIELD(oncommit, OnCommitAction);
    2039                 :       50461 :     WRITE_STRING_FIELD(tablespacename);
    2040                 :       50461 :     WRITE_STRING_FIELD(accessMethod);
    2041         [ +  + ]:       50461 :     WRITE_BOOL_FIELD(if_not_exists);
    2042                 :       50461 : }
    2043                 :             : 
    2044                 :             : static void
    2045                 :       45966 : _outConstraint(StringInfo str, const Constraint *node)
    2046                 :             : {
    2047                 :       45966 :     WRITE_NODE_TYPE("CONSTRAINT");
    2048                 :             : 
    2049                 :       45966 :     WRITE_ENUM_FIELD(contype, ConstrType);
    2050                 :       45966 :     WRITE_STRING_FIELD(conname);
    2051         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(deferrable);
    2052         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(initdeferred);
    2053         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(is_enforced);
    2054         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(skip_validation);
    2055         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(initially_valid);
    2056         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(is_no_inherit);
    2057                 :       45966 :     WRITE_NODE_FIELD(raw_expr);
    2058                 :       45966 :     WRITE_STRING_FIELD(cooked_expr);
    2059                 :       45966 :     WRITE_CHAR_FIELD(generated_when);
    2060                 :       45966 :     WRITE_CHAR_FIELD(generated_kind);
    2061         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(nulls_not_distinct);
    2062                 :       45966 :     WRITE_NODE_FIELD(keys);
    2063         [ +  + ]:       45966 :     WRITE_BOOL_FIELD(without_overlaps);
    2064                 :       45966 :     WRITE_NODE_FIELD(including);
    2065                 :       45966 :     WRITE_NODE_FIELD(exclusions);
    2066                 :       45966 :     WRITE_NODE_FIELD(options);
    2067                 :       45966 :     WRITE_STRING_FIELD(indexname);
    2068                 :       45966 :     WRITE_STRING_FIELD(indexspace);
    2069         [ -  + ]:       45966 :     WRITE_BOOL_FIELD(reset_default_tblspc);
    2070                 :       45966 :     WRITE_STRING_FIELD(access_method);
    2071                 :       45964 :     WRITE_NODE_FIELD(where_clause);
    2072                 :       45964 :     WRITE_NODE_FIELD(pktable);
    2073                 :       45964 :     WRITE_NODE_FIELD(fk_attrs);
    2074                 :       45964 :     WRITE_NODE_FIELD(pk_attrs);
    2075         [ +  + ]:       45964 :     WRITE_BOOL_FIELD(fk_with_period);
    2076         [ +  + ]:       45964 :     WRITE_BOOL_FIELD(pk_with_period);
    2077                 :       45964 :     WRITE_CHAR_FIELD(fk_matchtype);
    2078                 :       45964 :     WRITE_CHAR_FIELD(fk_upd_action);
    2079                 :       45964 :     WRITE_CHAR_FIELD(fk_del_action);
    2080                 :       45964 :     WRITE_NODE_FIELD(fk_del_set_cols);
    2081                 :       45964 :     WRITE_NODE_FIELD(old_conpfeqop);
    2082                 :       45964 :     WRITE_OID_FIELD(old_pktable_oid);
    2083         [ +  - ]:       45964 :     WRITE_LOCATION_FIELD(location);
    2084                 :       45964 : }
    2085                 :             : 
    2086                 :             : static void
    2087                 :         162 : _outCreateTableSpaceStmt(StringInfo str, const CreateTableSpaceStmt *node)
    2088                 :             : {
    2089                 :         162 :     WRITE_NODE_TYPE("CREATETABLESPACESTMT");
    2090                 :             : 
    2091                 :         162 :     WRITE_STRING_FIELD(tablespacename);
    2092                 :         162 :     WRITE_NODE_FIELD(owner);
    2093                 :         162 :     WRITE_STRING_FIELD(location);
    2094                 :         162 :     WRITE_NODE_FIELD(options);
    2095                 :         162 : }
    2096                 :             : 
    2097                 :             : static void
    2098                 :          96 : _outDropTableSpaceStmt(StringInfo str, const DropTableSpaceStmt *node)
    2099                 :             : {
    2100                 :          96 :     WRITE_NODE_TYPE("DROPTABLESPACESTMT");
    2101                 :             : 
    2102                 :          96 :     WRITE_STRING_FIELD(tablespacename);
    2103         [ +  + ]:          96 :     WRITE_BOOL_FIELD(missing_ok);
    2104                 :          96 : }
    2105                 :             : 
    2106                 :             : static void
    2107                 :          38 : _outAlterTableSpaceOptionsStmt(StringInfo str, const AlterTableSpaceOptionsStmt *node)
    2108                 :             : {
    2109                 :          38 :     WRITE_NODE_TYPE("ALTERTABLESPACEOPTIONSSTMT");
    2110                 :             : 
    2111                 :          38 :     WRITE_STRING_FIELD(tablespacename);
    2112                 :          38 :     WRITE_NODE_FIELD(options);
    2113         [ +  + ]:          38 :     WRITE_BOOL_FIELD(isReset);
    2114                 :          38 : }
    2115                 :             : 
    2116                 :             : static void
    2117                 :          32 : _outAlterTableMoveAllStmt(StringInfo str, const AlterTableMoveAllStmt *node)
    2118                 :             : {
    2119                 :          32 :     WRITE_NODE_TYPE("ALTERTABLEMOVEALLSTMT");
    2120                 :             : 
    2121                 :          32 :     WRITE_STRING_FIELD(orig_tablespacename);
    2122                 :          32 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    2123                 :          32 :     WRITE_NODE_FIELD(roles);
    2124                 :          32 :     WRITE_STRING_FIELD(new_tablespacename);
    2125         [ -  + ]:          32 :     WRITE_BOOL_FIELD(nowait);
    2126                 :          32 : }
    2127                 :             : 
    2128                 :             : static void
    2129                 :         712 : _outCreateExtensionStmt(StringInfo str, const CreateExtensionStmt *node)
    2130                 :             : {
    2131                 :         712 :     WRITE_NODE_TYPE("CREATEEXTENSIONSTMT");
    2132                 :             : 
    2133                 :         712 :     WRITE_STRING_FIELD(extname);
    2134         [ +  + ]:         712 :     WRITE_BOOL_FIELD(if_not_exists);
    2135                 :         712 :     WRITE_NODE_FIELD(options);
    2136                 :         712 : }
    2137                 :             : 
    2138                 :             : static void
    2139                 :          37 : _outAlterExtensionStmt(StringInfo str, const AlterExtensionStmt *node)
    2140                 :             : {
    2141                 :          37 :     WRITE_NODE_TYPE("ALTEREXTENSIONSTMT");
    2142                 :             : 
    2143                 :          37 :     WRITE_STRING_FIELD(extname);
    2144                 :          37 :     WRITE_NODE_FIELD(options);
    2145                 :          37 : }
    2146                 :             : 
    2147                 :             : static void
    2148                 :         292 : _outAlterExtensionContentsStmt(StringInfo str, const AlterExtensionContentsStmt *node)
    2149                 :             : {
    2150                 :         292 :     WRITE_NODE_TYPE("ALTEREXTENSIONCONTENTSSTMT");
    2151                 :             : 
    2152                 :         292 :     WRITE_STRING_FIELD(extname);
    2153                 :         292 :     WRITE_INT_FIELD(action);
    2154                 :         292 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    2155                 :         292 :     WRITE_NODE_FIELD(object);
    2156                 :         292 : }
    2157                 :             : 
    2158                 :             : static void
    2159                 :         306 : _outCreateFdwStmt(StringInfo str, const CreateFdwStmt *node)
    2160                 :             : {
    2161                 :         306 :     WRITE_NODE_TYPE("CREATEFDWSTMT");
    2162                 :             : 
    2163                 :         306 :     WRITE_STRING_FIELD(fdwname);
    2164                 :         306 :     WRITE_NODE_FIELD(func_options);
    2165                 :         306 :     WRITE_NODE_FIELD(options);
    2166                 :         306 : }
    2167                 :             : 
    2168                 :             : static void
    2169                 :         206 : _outAlterFdwStmt(StringInfo str, const AlterFdwStmt *node)
    2170                 :             : {
    2171                 :         206 :     WRITE_NODE_TYPE("ALTERFDWSTMT");
    2172                 :             : 
    2173                 :         206 :     WRITE_STRING_FIELD(fdwname);
    2174                 :         206 :     WRITE_NODE_FIELD(func_options);
    2175                 :         206 :     WRITE_NODE_FIELD(options);
    2176                 :         206 : }
    2177                 :             : 
    2178                 :             : static void
    2179                 :         385 : _outCreateForeignServerStmt(StringInfo str, const CreateForeignServerStmt *node)
    2180                 :             : {
    2181                 :         385 :     WRITE_NODE_TYPE("CREATEFOREIGNSERVERSTMT");
    2182                 :             : 
    2183                 :         385 :     WRITE_STRING_FIELD(servername);
    2184                 :         385 :     WRITE_STRING_FIELD(servertype);
    2185                 :         385 :     WRITE_STRING_FIELD(version);
    2186                 :         385 :     WRITE_STRING_FIELD(fdwname);
    2187         [ +  + ]:         385 :     WRITE_BOOL_FIELD(if_not_exists);
    2188                 :         385 :     WRITE_NODE_FIELD(options);
    2189                 :         385 : }
    2190                 :             : 
    2191                 :             : static void
    2192                 :         258 : _outAlterForeignServerStmt(StringInfo str, const AlterForeignServerStmt *node)
    2193                 :             : {
    2194                 :         258 :     WRITE_NODE_TYPE("ALTERFOREIGNSERVERSTMT");
    2195                 :             : 
    2196                 :         258 :     WRITE_STRING_FIELD(servername);
    2197                 :         258 :     WRITE_STRING_FIELD(version);
    2198                 :         258 :     WRITE_NODE_FIELD(options);
    2199         [ +  + ]:         258 :     WRITE_BOOL_FIELD(has_version);
    2200                 :         258 : }
    2201                 :             : 
    2202                 :             : static void
    2203                 :         578 : _outCreateForeignTableStmt(StringInfo str, const CreateForeignTableStmt *node)
    2204                 :             : {
    2205                 :         578 :     WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT");
    2206                 :             : 
    2207                 :         578 :     WRITE_NODE_FIELD(base.relation);
    2208                 :         578 :     WRITE_NODE_FIELD(base.tableElts);
    2209                 :         578 :     WRITE_NODE_FIELD(base.inhRelations);
    2210                 :         578 :     WRITE_NODE_FIELD(base.partbound);
    2211                 :         578 :     WRITE_NODE_FIELD(base.partspec);
    2212                 :         578 :     WRITE_NODE_FIELD(base.ofTypename);
    2213                 :         578 :     WRITE_NODE_FIELD(base.constraints);
    2214                 :         578 :     WRITE_NODE_FIELD(base.nnconstraints);
    2215                 :         578 :     WRITE_NODE_FIELD(base.options);
    2216                 :         578 :     WRITE_ENUM_FIELD(base.oncommit, OnCommitAction);
    2217                 :         578 :     WRITE_STRING_FIELD(base.tablespacename);
    2218                 :         578 :     WRITE_STRING_FIELD(base.accessMethod);
    2219         [ -  + ]:         578 :     WRITE_BOOL_FIELD(base.if_not_exists);
    2220                 :         578 :     WRITE_STRING_FIELD(servername);
    2221                 :         578 :     WRITE_NODE_FIELD(options);
    2222                 :         578 : }
    2223                 :             : 
    2224                 :             : static void
    2225                 :         334 : _outCreateUserMappingStmt(StringInfo str, const CreateUserMappingStmt *node)
    2226                 :             : {
    2227                 :         334 :     WRITE_NODE_TYPE("CREATEUSERMAPPINGSTMT");
    2228                 :             : 
    2229                 :         334 :     WRITE_NODE_FIELD(user);
    2230                 :         334 :     WRITE_STRING_FIELD(servername);
    2231         [ +  + ]:         334 :     WRITE_BOOL_FIELD(if_not_exists);
    2232                 :         334 :     WRITE_NODE_FIELD(options);
    2233                 :         334 : }
    2234                 :             : 
    2235                 :             : static void
    2236                 :         146 : _outAlterUserMappingStmt(StringInfo str, const AlterUserMappingStmt *node)
    2237                 :             : {
    2238                 :         146 :     WRITE_NODE_TYPE("ALTERUSERMAPPINGSTMT");
    2239                 :             : 
    2240                 :         146 :     WRITE_NODE_FIELD(user);
    2241                 :         146 :     WRITE_STRING_FIELD(servername);
    2242                 :         146 :     WRITE_NODE_FIELD(options);
    2243                 :         146 : }
    2244                 :             : 
    2245                 :             : static void
    2246                 :         158 : _outDropUserMappingStmt(StringInfo str, const DropUserMappingStmt *node)
    2247                 :             : {
    2248                 :         158 :     WRITE_NODE_TYPE("DROPUSERMAPPINGSTMT");
    2249                 :             : 
    2250                 :         158 :     WRITE_NODE_FIELD(user);
    2251                 :         158 :     WRITE_STRING_FIELD(servername);
    2252         [ +  + ]:         158 :     WRITE_BOOL_FIELD(missing_ok);
    2253                 :         158 : }
    2254                 :             : 
    2255                 :             : static void
    2256                 :          56 : _outImportForeignSchemaStmt(StringInfo str, const ImportForeignSchemaStmt *node)
    2257                 :             : {
    2258                 :          56 :     WRITE_NODE_TYPE("IMPORTFOREIGNSCHEMASTMT");
    2259                 :             : 
    2260                 :          56 :     WRITE_STRING_FIELD(server_name);
    2261                 :          56 :     WRITE_STRING_FIELD(remote_schema);
    2262                 :          56 :     WRITE_STRING_FIELD(local_schema);
    2263                 :          56 :     WRITE_ENUM_FIELD(list_type, ImportForeignSchemaType);
    2264                 :          56 :     WRITE_NODE_FIELD(table_list);
    2265                 :          56 :     WRITE_NODE_FIELD(options);
    2266                 :          56 : }
    2267                 :             : 
    2268                 :             : static void
    2269                 :        1086 : _outCreatePolicyStmt(StringInfo str, const CreatePolicyStmt *node)
    2270                 :             : {
    2271                 :        1086 :     WRITE_NODE_TYPE("CREATEPOLICYSTMT");
    2272                 :             : 
    2273                 :        1086 :     WRITE_STRING_FIELD(policy_name);
    2274                 :        1086 :     WRITE_NODE_FIELD(table);
    2275                 :        1086 :     WRITE_STRING_FIELD(cmd_name);
    2276         [ +  + ]:        1086 :     WRITE_BOOL_FIELD(permissive);
    2277                 :        1086 :     WRITE_NODE_FIELD(roles);
    2278                 :        1086 :     WRITE_NODE_FIELD(qual);
    2279                 :        1086 :     WRITE_NODE_FIELD(with_check);
    2280                 :        1086 : }
    2281                 :             : 
    2282                 :             : static void
    2283                 :         112 : _outAlterPolicyStmt(StringInfo str, const AlterPolicyStmt *node)
    2284                 :             : {
    2285                 :         112 :     WRITE_NODE_TYPE("ALTERPOLICYSTMT");
    2286                 :             : 
    2287                 :         112 :     WRITE_STRING_FIELD(policy_name);
    2288                 :         112 :     WRITE_NODE_FIELD(table);
    2289                 :         112 :     WRITE_NODE_FIELD(roles);
    2290                 :         112 :     WRITE_NODE_FIELD(qual);
    2291                 :         112 :     WRITE_NODE_FIELD(with_check);
    2292                 :         112 : }
    2293                 :             : 
    2294                 :             : static void
    2295                 :          76 : _outCreateAmStmt(StringInfo str, const CreateAmStmt *node)
    2296                 :             : {
    2297                 :          76 :     WRITE_NODE_TYPE("CREATEAMSTMT");
    2298                 :             : 
    2299                 :          76 :     WRITE_STRING_FIELD(amname);
    2300                 :          76 :     WRITE_NODE_FIELD(handler_name);
    2301                 :          76 :     WRITE_CHAR_FIELD(amtype);
    2302                 :          76 : }
    2303                 :             : 
    2304                 :             : static void
    2305                 :        4048 : _outCreateTrigStmt(StringInfo str, const CreateTrigStmt *node)
    2306                 :             : {
    2307                 :        4048 :     WRITE_NODE_TYPE("CREATETRIGSTMT");
    2308                 :             : 
    2309         [ +  + ]:        4048 :     WRITE_BOOL_FIELD(replace);
    2310         [ +  + ]:        4048 :     WRITE_BOOL_FIELD(isconstraint);
    2311                 :        4048 :     WRITE_STRING_FIELD(trigname);
    2312                 :        4048 :     WRITE_NODE_FIELD(relation);
    2313                 :        4048 :     WRITE_NODE_FIELD(funcname);
    2314                 :        4048 :     WRITE_NODE_FIELD(args);
    2315         [ +  + ]:        4048 :     WRITE_BOOL_FIELD(row);
    2316                 :        4048 :     WRITE_INT_FIELD(timing);
    2317                 :        4048 :     WRITE_INT_FIELD(events);
    2318                 :        4048 :     WRITE_NODE_FIELD(columns);
    2319                 :        4048 :     WRITE_NODE_FIELD(whenClause);
    2320                 :        4048 :     WRITE_NODE_FIELD(transitionRels);
    2321         [ +  + ]:        4048 :     WRITE_BOOL_FIELD(deferrable);
    2322         [ +  + ]:        4048 :     WRITE_BOOL_FIELD(initdeferred);
    2323                 :        4048 :     WRITE_NODE_FIELD(constrrel);
    2324                 :        4048 : }
    2325                 :             : 
    2326                 :             : static void
    2327                 :         258 : _outCreateEventTrigStmt(StringInfo str, const CreateEventTrigStmt *node)
    2328                 :             : {
    2329                 :         258 :     WRITE_NODE_TYPE("CREATEEVENTTRIGSTMT");
    2330                 :             : 
    2331                 :         258 :     WRITE_STRING_FIELD(trigname);
    2332                 :         258 :     WRITE_STRING_FIELD(eventname);
    2333                 :         258 :     WRITE_NODE_FIELD(whenclause);
    2334                 :         258 :     WRITE_NODE_FIELD(funcname);
    2335                 :         258 : }
    2336                 :             : 
    2337                 :             : static void
    2338                 :          64 : _outAlterEventTrigStmt(StringInfo str, const AlterEventTrigStmt *node)
    2339                 :             : {
    2340                 :          64 :     WRITE_NODE_TYPE("ALTEREVENTTRIGSTMT");
    2341                 :             : 
    2342                 :          64 :     WRITE_STRING_FIELD(trigname);
    2343                 :          64 :     WRITE_CHAR_FIELD(tgenabled);
    2344                 :          64 : }
    2345                 :             : 
    2346                 :             : static void
    2347                 :         164 : _outCreatePLangStmt(StringInfo str, const CreatePLangStmt *node)
    2348                 :             : {
    2349                 :         164 :     WRITE_NODE_TYPE("CREATEPLANGSTMT");
    2350                 :             : 
    2351         [ -  + ]:         164 :     WRITE_BOOL_FIELD(replace);
    2352                 :         164 :     WRITE_STRING_FIELD(plname);
    2353                 :         164 :     WRITE_NODE_FIELD(plhandler);
    2354                 :         164 :     WRITE_NODE_FIELD(plinline);
    2355                 :         164 :     WRITE_NODE_FIELD(plvalidator);
    2356         [ +  + ]:         164 :     WRITE_BOOL_FIELD(pltrusted);
    2357                 :         164 : }
    2358                 :             : 
    2359                 :             : static void
    2360                 :        2582 : _outCreateRoleStmt(StringInfo str, const CreateRoleStmt *node)
    2361                 :             : {
    2362                 :        2582 :     WRITE_NODE_TYPE("CREATEROLESTMT");
    2363                 :             : 
    2364                 :        2582 :     WRITE_ENUM_FIELD(stmt_type, RoleStmtType);
    2365                 :        2582 :     WRITE_STRING_FIELD(role);
    2366                 :        2582 :     WRITE_NODE_FIELD(options);
    2367                 :        2582 : }
    2368                 :             : 
    2369                 :             : static void
    2370                 :         588 : _outAlterRoleStmt(StringInfo str, const AlterRoleStmt *node)
    2371                 :             : {
    2372                 :         588 :     WRITE_NODE_TYPE("ALTERROLESTMT");
    2373                 :             : 
    2374                 :         588 :     WRITE_NODE_FIELD(role);
    2375                 :         588 :     WRITE_NODE_FIELD(options);
    2376                 :         588 :     WRITE_INT_FIELD(action);
    2377                 :         588 : }
    2378                 :             : 
    2379                 :             : static void
    2380                 :         104 : _outAlterRoleSetStmt(StringInfo str, const AlterRoleSetStmt *node)
    2381                 :             : {
    2382                 :         104 :     WRITE_NODE_TYPE("ALTERROLESETSTMT");
    2383                 :             : 
    2384                 :         104 :     WRITE_NODE_FIELD(role);
    2385                 :         104 :     WRITE_STRING_FIELD(database);
    2386                 :         104 :     WRITE_NODE_FIELD(setstmt);
    2387                 :         104 : }
    2388                 :             : 
    2389                 :             : static void
    2390                 :        2400 : _outDropRoleStmt(StringInfo str, const DropRoleStmt *node)
    2391                 :             : {
    2392                 :        2400 :     WRITE_NODE_TYPE("DROPROLESTMT");
    2393                 :             : 
    2394                 :        2400 :     WRITE_NODE_FIELD(roles);
    2395         [ +  + ]:        2400 :     WRITE_BOOL_FIELD(missing_ok);
    2396                 :        2400 : }
    2397                 :             : 
    2398                 :             : static void
    2399                 :         898 : _outCreateSeqStmt(StringInfo str, const CreateSeqStmt *node)
    2400                 :             : {
    2401                 :         898 :     WRITE_NODE_TYPE("CREATESEQSTMT");
    2402                 :             : 
    2403                 :         898 :     WRITE_NODE_FIELD(sequence);
    2404                 :         898 :     WRITE_NODE_FIELD(options);
    2405                 :         898 :     WRITE_OID_FIELD(ownerId);
    2406         [ -  + ]:         898 :     WRITE_BOOL_FIELD(for_identity);
    2407         [ +  + ]:         898 :     WRITE_BOOL_FIELD(if_not_exists);
    2408                 :         898 : }
    2409                 :             : 
    2410                 :             : static void
    2411                 :         266 : _outAlterSeqStmt(StringInfo str, const AlterSeqStmt *node)
    2412                 :             : {
    2413                 :         266 :     WRITE_NODE_TYPE("ALTERSEQSTMT");
    2414                 :             : 
    2415                 :         266 :     WRITE_NODE_FIELD(sequence);
    2416                 :         266 :     WRITE_NODE_FIELD(options);
    2417         [ -  + ]:         266 :     WRITE_BOOL_FIELD(for_identity);
    2418         [ +  + ]:         266 :     WRITE_BOOL_FIELD(missing_ok);
    2419                 :         266 : }
    2420                 :             : 
    2421                 :             : static void
    2422                 :       11496 : _outDefineStmt(StringInfo str, const DefineStmt *node)
    2423                 :             : {
    2424                 :       11496 :     WRITE_NODE_TYPE("DEFINESTMT");
    2425                 :             : 
    2426                 :       11496 :     WRITE_ENUM_FIELD(kind, ObjectType);
    2427         [ +  + ]:       11496 :     WRITE_BOOL_FIELD(oldstyle);
    2428                 :       11496 :     WRITE_NODE_FIELD(defnames);
    2429                 :       11496 :     WRITE_NODE_FIELD(args);
    2430                 :       11496 :     WRITE_NODE_FIELD(definition);
    2431         [ +  + ]:       11496 :     WRITE_BOOL_FIELD(if_not_exists);
    2432         [ +  + ]:       11496 :     WRITE_BOOL_FIELD(replace);
    2433                 :       11496 : }
    2434                 :             : 
    2435                 :             : static void
    2436                 :        2064 : _outCreateDomainStmt(StringInfo str, const CreateDomainStmt *node)
    2437                 :             : {
    2438                 :        2064 :     WRITE_NODE_TYPE("CREATEDOMAINSTMT");
    2439                 :             : 
    2440                 :        2064 :     WRITE_NODE_FIELD(domainname);
    2441                 :        2064 :     WRITE_NODE_FIELD(typeName);
    2442                 :        2064 :     WRITE_NODE_FIELD(collClause);
    2443                 :        2064 :     WRITE_NODE_FIELD(constraints);
    2444                 :        2064 : }
    2445                 :             : 
    2446                 :             : static void
    2447                 :         606 : _outCreateOpClassStmt(StringInfo str, const CreateOpClassStmt *node)
    2448                 :             : {
    2449                 :         606 :     WRITE_NODE_TYPE("CREATEOPCLASSSTMT");
    2450                 :             : 
    2451                 :         606 :     WRITE_NODE_FIELD(opclassname);
    2452                 :         606 :     WRITE_NODE_FIELD(opfamilyname);
    2453                 :         606 :     WRITE_STRING_FIELD(amname);
    2454                 :         606 :     WRITE_NODE_FIELD(datatype);
    2455                 :         606 :     WRITE_NODE_FIELD(items);
    2456         [ +  + ]:         606 :     WRITE_BOOL_FIELD(isDefault);
    2457                 :         606 : }
    2458                 :             : 
    2459                 :             : static void
    2460                 :        7426 : _outCreateOpClassItem(StringInfo str, const CreateOpClassItem *node)
    2461                 :             : {
    2462                 :        7426 :     WRITE_NODE_TYPE("CREATEOPCLASSITEM");
    2463                 :             : 
    2464                 :        7426 :     WRITE_INT_FIELD(itemtype);
    2465                 :        7426 :     WRITE_NODE_FIELD(name);
    2466                 :        7426 :     WRITE_INT_FIELD(number);
    2467                 :        7426 :     WRITE_NODE_FIELD(order_family);
    2468                 :        7426 :     WRITE_NODE_FIELD(class_args);
    2469                 :        7426 :     WRITE_NODE_FIELD(storedtype);
    2470                 :        7426 : }
    2471                 :             : 
    2472                 :             : static void
    2473                 :         198 : _outCreateOpFamilyStmt(StringInfo str, const CreateOpFamilyStmt *node)
    2474                 :             : {
    2475                 :         198 :     WRITE_NODE_TYPE("CREATEOPFAMILYSTMT");
    2476                 :             : 
    2477                 :         198 :     WRITE_NODE_FIELD(opfamilyname);
    2478                 :         198 :     WRITE_STRING_FIELD(amname);
    2479                 :         198 : }
    2480                 :             : 
    2481                 :             : static void
    2482                 :         576 : _outAlterOpFamilyStmt(StringInfo str, const AlterOpFamilyStmt *node)
    2483                 :             : {
    2484                 :         576 :     WRITE_NODE_TYPE("ALTEROPFAMILYSTMT");
    2485                 :             : 
    2486                 :         576 :     WRITE_NODE_FIELD(opfamilyname);
    2487                 :         576 :     WRITE_STRING_FIELD(amname);
    2488         [ +  + ]:         576 :     WRITE_BOOL_FIELD(isDrop);
    2489                 :         576 :     WRITE_NODE_FIELD(items);
    2490                 :         576 : }
    2491                 :             : 
    2492                 :             : static void
    2493                 :       34923 : _outDropStmt(StringInfo str, const DropStmt *node)
    2494                 :             : {
    2495                 :       34923 :     WRITE_NODE_TYPE("DROPSTMT");
    2496                 :             : 
    2497                 :       34923 :     WRITE_NODE_FIELD(objects);
    2498                 :       34923 :     WRITE_ENUM_FIELD(removeType, ObjectType);
    2499                 :       34923 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    2500         [ +  + ]:       34923 :     WRITE_BOOL_FIELD(missing_ok);
    2501         [ +  + ]:       34923 :     WRITE_BOOL_FIELD(concurrent);
    2502                 :       34923 : }
    2503                 :             : 
    2504                 :             : static void
    2505                 :        2358 : _outTruncateStmt(StringInfo str, const TruncateStmt *node)
    2506                 :             : {
    2507                 :        2358 :     WRITE_NODE_TYPE("TRUNCATESTMT");
    2508                 :             : 
    2509                 :        2358 :     WRITE_NODE_FIELD(relations);
    2510         [ +  + ]:        2358 :     WRITE_BOOL_FIELD(restart_seqs);
    2511                 :        2358 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    2512                 :        2358 : }
    2513                 :             : 
    2514                 :             : static void
    2515                 :        8937 : _outCommentStmt(StringInfo str, const CommentStmt *node)
    2516                 :             : {
    2517                 :        8937 :     WRITE_NODE_TYPE("COMMENTSTMT");
    2518                 :             : 
    2519                 :        8937 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    2520                 :        8937 :     WRITE_NODE_FIELD(object);
    2521                 :        8937 :     WRITE_STRING_FIELD(comment);
    2522                 :        8937 : }
    2523                 :             : 
    2524                 :             : static void
    2525                 :         134 : _outSecLabelStmt(StringInfo str, const SecLabelStmt *node)
    2526                 :             : {
    2527                 :         134 :     WRITE_NODE_TYPE("SECLABELSTMT");
    2528                 :             : 
    2529                 :         134 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    2530                 :         134 :     WRITE_NODE_FIELD(object);
    2531                 :         134 :     WRITE_STRING_FIELD(provider);
    2532                 :         134 :     WRITE_STRING_FIELD(label);
    2533                 :         134 : }
    2534                 :             : 
    2535                 :             : static void
    2536                 :        4426 : _outDeclareCursorStmt(StringInfo str, const DeclareCursorStmt *node)
    2537                 :             : {
    2538                 :        4426 :     WRITE_NODE_TYPE("DECLARECURSORSTMT");
    2539                 :             : 
    2540                 :        4426 :     WRITE_STRING_FIELD(portalname);
    2541                 :        4426 :     WRITE_INT_FIELD(options);
    2542                 :        4426 :     WRITE_NODE_FIELD(query);
    2543                 :        4426 : }
    2544                 :             : 
    2545                 :             : static void
    2546                 :        2476 : _outClosePortalStmt(StringInfo str, const ClosePortalStmt *node)
    2547                 :             : {
    2548                 :        2476 :     WRITE_NODE_TYPE("CLOSEPORTALSTMT");
    2549                 :             : 
    2550                 :        2476 :     WRITE_STRING_FIELD(portalname);
    2551                 :        2476 : }
    2552                 :             : 
    2553                 :             : static void
    2554                 :        7878 : _outFetchStmt(StringInfo str, const FetchStmt *node)
    2555                 :             : {
    2556                 :        7878 :     WRITE_NODE_TYPE("FETCHSTMT");
    2557                 :             : 
    2558                 :        7878 :     WRITE_ENUM_FIELD(direction, FetchDirection);
    2559                 :        7878 :     WRITE_LONG_FIELD(howMany);
    2560                 :        7878 :     WRITE_STRING_FIELD(portalname);
    2561         [ +  + ]:        7878 :     WRITE_BOOL_FIELD(ismove);
    2562                 :        7878 :     WRITE_ENUM_FIELD(direction_keyword, FetchDirectionKeywords);
    2563         [ +  - ]:        7878 :     WRITE_LOCATION_FIELD(location);
    2564                 :        7878 : }
    2565                 :             : 
    2566                 :             : static void
    2567                 :        8851 : _outIndexStmt(StringInfo str, const IndexStmt *node)
    2568                 :             : {
    2569                 :        8851 :     WRITE_NODE_TYPE("INDEXSTMT");
    2570                 :             : 
    2571                 :        8851 :     WRITE_STRING_FIELD(idxname);
    2572                 :        8851 :     WRITE_NODE_FIELD(relation);
    2573                 :        8851 :     WRITE_STRING_FIELD(accessMethod);
    2574                 :        8851 :     WRITE_STRING_FIELD(tableSpace);
    2575                 :        8851 :     WRITE_NODE_FIELD(indexParams);
    2576                 :        8851 :     WRITE_NODE_FIELD(indexIncludingParams);
    2577                 :        8851 :     WRITE_NODE_FIELD(options);
    2578                 :        8851 :     WRITE_NODE_FIELD(whereClause);
    2579                 :        8851 :     WRITE_NODE_FIELD(excludeOpNames);
    2580                 :        8851 :     WRITE_STRING_FIELD(idxcomment);
    2581                 :        8851 :     WRITE_OID_FIELD(indexOid);
    2582                 :        8851 :     WRITE_OID_FIELD(oldNumber);
    2583                 :        8851 :     WRITE_UINT_FIELD(oldCreateSubid);
    2584                 :        8851 :     WRITE_UINT_FIELD(oldFirstRelfilelocatorSubid);
    2585         [ +  + ]:        8851 :     WRITE_BOOL_FIELD(unique);
    2586         [ +  + ]:        8851 :     WRITE_BOOL_FIELD(nulls_not_distinct);
    2587         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(primary);
    2588         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(isconstraint);
    2589         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(iswithoutoverlaps);
    2590         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(deferrable);
    2591         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(initdeferred);
    2592         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(transformed);
    2593         [ +  + ]:        8851 :     WRITE_BOOL_FIELD(concurrent);
    2594         [ +  + ]:        8851 :     WRITE_BOOL_FIELD(if_not_exists);
    2595         [ -  + ]:        8851 :     WRITE_BOOL_FIELD(reset_default_tblspc);
    2596                 :        8851 : }
    2597                 :             : 
    2598                 :             : static void
    2599                 :        1212 : _outCreateStatsStmt(StringInfo str, const CreateStatsStmt *node)
    2600                 :             : {
    2601                 :        1212 :     WRITE_NODE_TYPE("CREATESTATSSTMT");
    2602                 :             : 
    2603                 :        1212 :     WRITE_NODE_FIELD(defnames);
    2604                 :        1212 :     WRITE_NODE_FIELD(stat_types);
    2605                 :        1212 :     WRITE_NODE_FIELD(exprs);
    2606                 :        1212 :     WRITE_NODE_FIELD(relations);
    2607                 :        1212 :     WRITE_STRING_FIELD(stxcomment);
    2608         [ -  + ]:        1212 :     WRITE_BOOL_FIELD(transformed);
    2609         [ +  + ]:        1212 :     WRITE_BOOL_FIELD(if_not_exists);
    2610                 :        1212 :     WRITE_OID_FIELD(owner);
    2611                 :        1212 : }
    2612                 :             : 
    2613                 :             : static void
    2614                 :        2864 : _outStatsElem(StringInfo str, const StatsElem *node)
    2615                 :             : {
    2616                 :        2864 :     WRITE_NODE_TYPE("STATSELEM");
    2617                 :             : 
    2618                 :        2864 :     WRITE_STRING_FIELD(name);
    2619                 :        2864 :     WRITE_NODE_FIELD(expr);
    2620                 :        2864 : }
    2621                 :             : 
    2622                 :             : static void
    2623                 :          34 : _outAlterStatsStmt(StringInfo str, const AlterStatsStmt *node)
    2624                 :             : {
    2625                 :          34 :     WRITE_NODE_TYPE("ALTERSTATSSTMT");
    2626                 :             : 
    2627                 :          34 :     WRITE_NODE_FIELD(defnames);
    2628                 :          34 :     WRITE_NODE_FIELD(stxstattarget);
    2629         [ +  + ]:          34 :     WRITE_BOOL_FIELD(missing_ok);
    2630                 :          34 : }
    2631                 :             : 
    2632                 :             : static void
    2633                 :       27003 : _outCreateFunctionStmt(StringInfo str, const CreateFunctionStmt *node)
    2634                 :             : {
    2635                 :       27003 :     WRITE_NODE_TYPE("CREATEFUNCTIONSTMT");
    2636                 :             : 
    2637         [ +  + ]:       27003 :     WRITE_BOOL_FIELD(is_procedure);
    2638         [ +  + ]:       27003 :     WRITE_BOOL_FIELD(replace);
    2639                 :       27003 :     WRITE_NODE_FIELD(funcname);
    2640                 :       27003 :     WRITE_NODE_FIELD(parameters);
    2641                 :       27003 :     WRITE_NODE_FIELD(returnType);
    2642                 :       27003 :     WRITE_NODE_FIELD(options);
    2643                 :       27003 :     WRITE_NODE_FIELD(sql_body);
    2644                 :       27003 : }
    2645                 :             : 
    2646                 :             : static void
    2647                 :       70174 : _outFunctionParameter(StringInfo str, const FunctionParameter *node)
    2648                 :             : {
    2649                 :       70174 :     WRITE_NODE_TYPE("FUNCTIONPARAMETER");
    2650                 :             : 
    2651                 :       70174 :     WRITE_STRING_FIELD(name);
    2652                 :       70174 :     WRITE_NODE_FIELD(argType);
    2653                 :       70174 :     WRITE_ENUM_FIELD(mode, FunctionParameterMode);
    2654                 :       70174 :     WRITE_NODE_FIELD(defexpr);
    2655         [ +  - ]:       70174 :     WRITE_LOCATION_FIELD(location);
    2656                 :       70174 : }
    2657                 :             : 
    2658                 :             : static void
    2659                 :         442 : _outAlterFunctionStmt(StringInfo str, const AlterFunctionStmt *node)
    2660                 :             : {
    2661                 :         442 :     WRITE_NODE_TYPE("ALTERFUNCTIONSTMT");
    2662                 :             : 
    2663                 :         442 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    2664                 :         442 :     WRITE_NODE_FIELD(func);
    2665                 :         442 :     WRITE_NODE_FIELD(actions);
    2666                 :         442 : }
    2667                 :             : 
    2668                 :             : static void
    2669                 :        1354 : _outDoStmt(StringInfo str, const DoStmt *node)
    2670                 :             : {
    2671                 :        1354 :     WRITE_NODE_TYPE("DOSTMT");
    2672                 :             : 
    2673                 :        1354 :     WRITE_NODE_FIELD(args);
    2674                 :        1354 : }
    2675                 :             : 
    2676                 :             : static void
    2677                 :         552 : _outCallStmt(StringInfo str, const CallStmt *node)
    2678                 :             : {
    2679                 :         552 :     WRITE_NODE_TYPE("CALLSTMT");
    2680                 :             : 
    2681                 :         552 :     WRITE_NODE_FIELD(funccall);
    2682                 :         552 :     WRITE_NODE_FIELD(funcexpr);
    2683                 :         552 :     WRITE_NODE_FIELD(outargs);
    2684                 :         552 : }
    2685                 :             : 
    2686                 :             : static void
    2687                 :        1901 : _outRenameStmt(StringInfo str, const RenameStmt *node)
    2688                 :             : {
    2689                 :        1901 :     WRITE_NODE_TYPE("RENAMESTMT");
    2690                 :             : 
    2691                 :        1901 :     WRITE_ENUM_FIELD(renameType, ObjectType);
    2692                 :        1901 :     WRITE_ENUM_FIELD(relationType, ObjectType);
    2693                 :        1901 :     WRITE_NODE_FIELD(relation);
    2694                 :        1901 :     WRITE_NODE_FIELD(object);
    2695                 :        1901 :     WRITE_STRING_FIELD(subname);
    2696                 :        1901 :     WRITE_STRING_FIELD(newname);
    2697                 :        1901 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    2698         [ +  + ]:        1901 :     WRITE_BOOL_FIELD(missing_ok);
    2699                 :        1901 : }
    2700                 :             : 
    2701                 :             : static void
    2702                 :          46 : _outAlterObjectDependsStmt(StringInfo str, const AlterObjectDependsStmt *node)
    2703                 :             : {
    2704                 :          46 :     WRITE_NODE_TYPE("ALTEROBJECTDEPENDSSTMT");
    2705                 :             : 
    2706                 :          46 :     WRITE_ENUM_FIELD(objectType, ObjectType);
    2707                 :          46 :     WRITE_NODE_FIELD(relation);
    2708                 :          46 :     WRITE_NODE_FIELD(object);
    2709                 :          46 :     WRITE_NODE_FIELD(extname);
    2710         [ +  + ]:          46 :     WRITE_BOOL_FIELD(remove);
    2711                 :          46 : }
    2712                 :             : 
    2713                 :             : static void
    2714                 :         542 : _outAlterObjectSchemaStmt(StringInfo str, const AlterObjectSchemaStmt *node)
    2715                 :             : {
    2716                 :         542 :     WRITE_NODE_TYPE("ALTEROBJECTSCHEMASTMT");
    2717                 :             : 
    2718                 :         542 :     WRITE_ENUM_FIELD(objectType, ObjectType);
    2719                 :         542 :     WRITE_NODE_FIELD(relation);
    2720                 :         542 :     WRITE_NODE_FIELD(object);
    2721                 :         542 :     WRITE_STRING_FIELD(newschema);
    2722         [ +  + ]:         542 :     WRITE_BOOL_FIELD(missing_ok);
    2723                 :         542 : }
    2724                 :             : 
    2725                 :             : static void
    2726                 :        1944 : _outAlterOwnerStmt(StringInfo str, const AlterOwnerStmt *node)
    2727                 :             : {
    2728                 :        1944 :     WRITE_NODE_TYPE("ALTEROWNERSTMT");
    2729                 :             : 
    2730                 :        1944 :     WRITE_ENUM_FIELD(objectType, ObjectType);
    2731                 :        1944 :     WRITE_NODE_FIELD(relation);
    2732                 :        1944 :     WRITE_NODE_FIELD(object);
    2733                 :        1944 :     WRITE_NODE_FIELD(newowner);
    2734                 :        1944 : }
    2735                 :             : 
    2736                 :             : static void
    2737                 :         664 : _outAlterOperatorStmt(StringInfo str, const AlterOperatorStmt *node)
    2738                 :             : {
    2739                 :         664 :     WRITE_NODE_TYPE("ALTEROPERATORSTMT");
    2740                 :             : 
    2741                 :         664 :     WRITE_NODE_FIELD(opername);
    2742                 :         664 :     WRITE_NODE_FIELD(options);
    2743                 :         664 : }
    2744                 :             : 
    2745                 :             : static void
    2746                 :          72 : _outAlterTypeStmt(StringInfo str, const AlterTypeStmt *node)
    2747                 :             : {
    2748                 :          72 :     WRITE_NODE_TYPE("ALTERTYPESTMT");
    2749                 :             : 
    2750                 :          72 :     WRITE_NODE_FIELD(typeName);
    2751                 :          72 :     WRITE_NODE_FIELD(options);
    2752                 :          72 : }
    2753                 :             : 
    2754                 :             : static void
    2755                 :        1468 : _outRuleStmt(StringInfo str, const RuleStmt *node)
    2756                 :             : {
    2757                 :        1468 :     WRITE_NODE_TYPE("RULESTMT");
    2758                 :             : 
    2759                 :        1468 :     WRITE_NODE_FIELD(relation);
    2760                 :        1468 :     WRITE_STRING_FIELD(rulename);
    2761                 :        1468 :     WRITE_NODE_FIELD(whereClause);
    2762                 :        1468 :     WRITE_ENUM_FIELD(event, CmdType);
    2763         [ +  + ]:        1468 :     WRITE_BOOL_FIELD(instead);
    2764                 :        1468 :     WRITE_NODE_FIELD(actions);
    2765         [ +  + ]:        1468 :     WRITE_BOOL_FIELD(replace);
    2766                 :        1468 : }
    2767                 :             : 
    2768                 :             : static void
    2769                 :         206 : _outNotifyStmt(StringInfo str, const NotifyStmt *node)
    2770                 :             : {
    2771                 :         206 :     WRITE_NODE_TYPE("NOTIFYSTMT");
    2772                 :             : 
    2773                 :         206 :     WRITE_STRING_FIELD(conditionname);
    2774                 :         206 :     WRITE_STRING_FIELD(payload);
    2775                 :         206 : }
    2776                 :             : 
    2777                 :             : static void
    2778                 :         104 : _outListenStmt(StringInfo str, const ListenStmt *node)
    2779                 :             : {
    2780                 :         104 :     WRITE_NODE_TYPE("LISTENSTMT");
    2781                 :             : 
    2782                 :         104 :     WRITE_STRING_FIELD(conditionname);
    2783                 :         104 : }
    2784                 :             : 
    2785                 :             : static void
    2786                 :         124 : _outUnlistenStmt(StringInfo str, const UnlistenStmt *node)
    2787                 :             : {
    2788                 :         124 :     WRITE_NODE_TYPE("UNLISTENSTMT");
    2789                 :             : 
    2790                 :         124 :     WRITE_STRING_FIELD(conditionname);
    2791                 :         124 : }
    2792                 :             : 
    2793                 :             : static void
    2794                 :       53818 : _outTransactionStmt(StringInfo str, const TransactionStmt *node)
    2795                 :             : {
    2796                 :       53818 :     WRITE_NODE_TYPE("TRANSACTIONSTMT");
    2797                 :             : 
    2798                 :       53818 :     WRITE_ENUM_FIELD(kind, TransactionStmtKind);
    2799                 :       53818 :     WRITE_NODE_FIELD(options);
    2800                 :       53818 :     WRITE_STRING_FIELD(savepoint_name);
    2801                 :       53818 :     WRITE_STRING_FIELD(gid);
    2802         [ +  + ]:       53818 :     WRITE_BOOL_FIELD(chain);
    2803         [ +  - ]:       53818 :     WRITE_LOCATION_FIELD(location);
    2804                 :       53818 : }
    2805                 :             : 
    2806                 :             : static void
    2807                 :        2884 : _outCompositeTypeStmt(StringInfo str, const CompositeTypeStmt *node)
    2808                 :             : {
    2809                 :        2884 :     WRITE_NODE_TYPE("COMPOSITETYPESTMT");
    2810                 :             : 
    2811                 :        2884 :     WRITE_NODE_FIELD(typevar);
    2812                 :        2884 :     WRITE_NODE_FIELD(coldeflist);
    2813                 :        2884 : }
    2814                 :             : 
    2815                 :             : static void
    2816                 :         330 : _outCreateEnumStmt(StringInfo str, const CreateEnumStmt *node)
    2817                 :             : {
    2818                 :         330 :     WRITE_NODE_TYPE("CREATEENUMSTMT");
    2819                 :             : 
    2820                 :         330 :     WRITE_NODE_FIELD(typeName);
    2821                 :         330 :     WRITE_NODE_FIELD(vals);
    2822                 :         330 : }
    2823                 :             : 
    2824                 :             : static void
    2825                 :         296 : _outCreateRangeStmt(StringInfo str, const CreateRangeStmt *node)
    2826                 :             : {
    2827                 :         296 :     WRITE_NODE_TYPE("CREATERANGESTMT");
    2828                 :             : 
    2829                 :         296 :     WRITE_NODE_FIELD(typeName);
    2830                 :         296 :     WRITE_NODE_FIELD(params);
    2831                 :         296 : }
    2832                 :             : 
    2833                 :             : static void
    2834                 :         492 : _outAlterEnumStmt(StringInfo str, const AlterEnumStmt *node)
    2835                 :             : {
    2836                 :         492 :     WRITE_NODE_TYPE("ALTERENUMSTMT");
    2837                 :             : 
    2838                 :         492 :     WRITE_NODE_FIELD(typeName);
    2839                 :         492 :     WRITE_STRING_FIELD(oldVal);
    2840                 :         492 :     WRITE_STRING_FIELD(newVal);
    2841                 :         492 :     WRITE_STRING_FIELD(newValNeighbor);
    2842         [ +  + ]:         492 :     WRITE_BOOL_FIELD(newValIsAfter);
    2843         [ +  + ]:         492 :     WRITE_BOOL_FIELD(skipIfNewValExists);
    2844                 :         492 : }
    2845                 :             : 
    2846                 :             : static void
    2847                 :       21441 : _outViewStmt(StringInfo str, const ViewStmt *node)
    2848                 :             : {
    2849                 :       21441 :     WRITE_NODE_TYPE("VIEWSTMT");
    2850                 :             : 
    2851                 :       21441 :     WRITE_NODE_FIELD(view);
    2852                 :       21441 :     WRITE_NODE_FIELD(aliases);
    2853                 :       21441 :     WRITE_NODE_FIELD(query);
    2854         [ +  + ]:       21441 :     WRITE_BOOL_FIELD(replace);
    2855                 :       21441 :     WRITE_NODE_FIELD(options);
    2856                 :       21441 :     WRITE_ENUM_FIELD(withCheckOption, ViewCheckOption);
    2857                 :       21441 : }
    2858                 :             : 
    2859                 :             : static void
    2860                 :         100 : _outLoadStmt(StringInfo str, const LoadStmt *node)
    2861                 :             : {
    2862                 :         100 :     WRITE_NODE_TYPE("LOADSTMT");
    2863                 :             : 
    2864                 :         100 :     WRITE_STRING_FIELD(filename);
    2865                 :         100 : }
    2866                 :             : 
    2867                 :             : static void
    2868                 :         916 : _outCreatedbStmt(StringInfo str, const CreatedbStmt *node)
    2869                 :             : {
    2870                 :         916 :     WRITE_NODE_TYPE("CREATEDBSTMT");
    2871                 :             : 
    2872                 :         916 :     WRITE_STRING_FIELD(dbname);
    2873                 :         916 :     WRITE_NODE_FIELD(options);
    2874                 :         916 : }
    2875                 :             : 
    2876                 :             : static void
    2877                 :         106 : _outAlterDatabaseStmt(StringInfo str, const AlterDatabaseStmt *node)
    2878                 :             : {
    2879                 :         106 :     WRITE_NODE_TYPE("ALTERDATABASESTMT");
    2880                 :             : 
    2881                 :         106 :     WRITE_STRING_FIELD(dbname);
    2882                 :         106 :     WRITE_NODE_FIELD(options);
    2883                 :         106 : }
    2884                 :             : 
    2885                 :             : static void
    2886                 :           8 : _outAlterDatabaseRefreshCollStmt(StringInfo str, const AlterDatabaseRefreshCollStmt *node)
    2887                 :             : {
    2888                 :           8 :     WRITE_NODE_TYPE("ALTERDATABASEREFRESHCOLLSTMT");
    2889                 :             : 
    2890                 :           8 :     WRITE_STRING_FIELD(dbname);
    2891                 :           8 : }
    2892                 :             : 
    2893                 :             : static void
    2894                 :        1370 : _outAlterDatabaseSetStmt(StringInfo str, const AlterDatabaseSetStmt *node)
    2895                 :             : {
    2896                 :        1370 :     WRITE_NODE_TYPE("ALTERDATABASESETSTMT");
    2897                 :             : 
    2898                 :        1370 :     WRITE_STRING_FIELD(dbname);
    2899                 :        1370 :     WRITE_NODE_FIELD(setstmt);
    2900                 :        1370 : }
    2901                 :             : 
    2902                 :             : static void
    2903                 :         160 : _outDropdbStmt(StringInfo str, const DropdbStmt *node)
    2904                 :             : {
    2905                 :         160 :     WRITE_NODE_TYPE("DROPDBSTMT");
    2906                 :             : 
    2907                 :         160 :     WRITE_STRING_FIELD(dbname);
    2908         [ +  + ]:         160 :     WRITE_BOOL_FIELD(missing_ok);
    2909                 :         160 :     WRITE_NODE_FIELD(options);
    2910                 :         160 : }
    2911                 :             : 
    2912                 :             : static void
    2913                 :         258 : _outAlterSystemStmt(StringInfo str, const AlterSystemStmt *node)
    2914                 :             : {
    2915                 :         258 :     WRITE_NODE_TYPE("ALTERSYSTEMSTMT");
    2916                 :             : 
    2917                 :         258 :     WRITE_NODE_FIELD(setstmt);
    2918                 :         258 : }
    2919                 :             : 
    2920                 :             : static void
    2921                 :       17038 : _outVacuumStmt(StringInfo str, const VacuumStmt *node)
    2922                 :             : {
    2923                 :       17038 :     WRITE_NODE_TYPE("VACUUMSTMT");
    2924                 :             : 
    2925                 :       17038 :     WRITE_NODE_FIELD(options);
    2926                 :       17038 :     WRITE_NODE_FIELD(rels);
    2927         [ +  + ]:       17038 :     WRITE_BOOL_FIELD(is_vacuumcmd);
    2928                 :       17038 : }
    2929                 :             : 
    2930                 :             : static void
    2931                 :       17359 : _outVacuumRelation(StringInfo str, const VacuumRelation *node)
    2932                 :             : {
    2933                 :       17359 :     WRITE_NODE_TYPE("VACUUMRELATION");
    2934                 :             : 
    2935                 :       17359 :     WRITE_NODE_FIELD(relation);
    2936                 :       17359 :     WRITE_OID_FIELD(oid);
    2937                 :       17359 :     WRITE_NODE_FIELD(va_cols);
    2938                 :       17359 : }
    2939                 :             : 
    2940                 :             : static void
    2941                 :         525 : _outRepackStmt(StringInfo str, const RepackStmt *node)
    2942                 :             : {
    2943                 :         525 :     WRITE_NODE_TYPE("REPACKSTMT");
    2944                 :             : 
    2945                 :         525 :     WRITE_ENUM_FIELD(command, RepackCommand);
    2946                 :         525 :     WRITE_NODE_FIELD(relation);
    2947                 :         525 :     WRITE_STRING_FIELD(indexname);
    2948         [ +  + ]:         525 :     WRITE_BOOL_FIELD(usingindex);
    2949                 :         525 :     WRITE_NODE_FIELD(params);
    2950                 :         525 : }
    2951                 :             : 
    2952                 :             : static void
    2953                 :       28680 : _outExplainStmt(StringInfo str, const ExplainStmt *node)
    2954                 :             : {
    2955                 :       28680 :     WRITE_NODE_TYPE("EXPLAINSTMT");
    2956                 :             : 
    2957                 :       28680 :     WRITE_NODE_FIELD(query);
    2958                 :       28680 :     WRITE_NODE_FIELD(options);
    2959                 :       28680 : }
    2960                 :             : 
    2961                 :             : static void
    2962                 :        2544 : _outCreateTableAsStmt(StringInfo str, const CreateTableAsStmt *node)
    2963                 :             : {
    2964                 :        2544 :     WRITE_NODE_TYPE("CREATETABLEASSTMT");
    2965                 :             : 
    2966                 :        2544 :     WRITE_NODE_FIELD(query);
    2967                 :        2544 :     WRITE_NODE_FIELD(into);
    2968                 :        2544 :     WRITE_ENUM_FIELD(objtype, ObjectType);
    2969         [ +  + ]:        2544 :     WRITE_BOOL_FIELD(is_select_into);
    2970         [ +  + ]:        2544 :     WRITE_BOOL_FIELD(if_not_exists);
    2971                 :        2544 : }
    2972                 :             : 
    2973                 :             : static void
    2974                 :         348 : _outRefreshMatViewStmt(StringInfo str, const RefreshMatViewStmt *node)
    2975                 :             : {
    2976                 :         348 :     WRITE_NODE_TYPE("REFRESHMATVIEWSTMT");
    2977                 :             : 
    2978         [ +  + ]:         348 :     WRITE_BOOL_FIELD(concurrent);
    2979         [ +  + ]:         348 :     WRITE_BOOL_FIELD(skipData);
    2980                 :         348 :     WRITE_NODE_FIELD(relation);
    2981                 :         348 : }
    2982                 :             : 
    2983                 :             : static void
    2984                 :         313 : _outCheckPointStmt(StringInfo str, const CheckPointStmt *node)
    2985                 :             : {
    2986                 :         313 :     WRITE_NODE_TYPE("CHECKPOINTSTMT");
    2987                 :             : 
    2988                 :         313 :     WRITE_NODE_FIELD(options);
    2989                 :         313 : }
    2990                 :             : 
    2991                 :             : static void
    2992                 :          48 : _outDiscardStmt(StringInfo str, const DiscardStmt *node)
    2993                 :             : {
    2994                 :          48 :     WRITE_NODE_TYPE("DISCARDSTMT");
    2995                 :             : 
    2996                 :          48 :     WRITE_ENUM_FIELD(target, DiscardMode);
    2997                 :          48 : }
    2998                 :             : 
    2999                 :             : static void
    3000                 :        1198 : _outLockStmt(StringInfo str, const LockStmt *node)
    3001                 :             : {
    3002                 :        1198 :     WRITE_NODE_TYPE("LOCKSTMT");
    3003                 :             : 
    3004                 :        1198 :     WRITE_NODE_FIELD(relations);
    3005                 :        1198 :     WRITE_INT_FIELD(mode);
    3006         [ +  + ]:        1198 :     WRITE_BOOL_FIELD(nowait);
    3007                 :        1198 : }
    3008                 :             : 
    3009                 :             : static void
    3010                 :         141 : _outConstraintsSetStmt(StringInfo str, const ConstraintsSetStmt *node)
    3011                 :             : {
    3012                 :         141 :     WRITE_NODE_TYPE("CONSTRAINTSSETSTMT");
    3013                 :             : 
    3014                 :         141 :     WRITE_NODE_FIELD(constraints);
    3015         [ +  + ]:         141 :     WRITE_BOOL_FIELD(deferred);
    3016                 :         141 : }
    3017                 :             : 
    3018                 :             : static void
    3019                 :        1424 : _outReindexStmt(StringInfo str, const ReindexStmt *node)
    3020                 :             : {
    3021                 :        1424 :     WRITE_NODE_TYPE("REINDEXSTMT");
    3022                 :             : 
    3023                 :        1424 :     WRITE_ENUM_FIELD(kind, ReindexObjectType);
    3024                 :        1424 :     WRITE_NODE_FIELD(relation);
    3025                 :        1424 :     WRITE_STRING_FIELD(name);
    3026                 :        1424 :     WRITE_NODE_FIELD(params);
    3027                 :        1424 : }
    3028                 :             : 
    3029                 :             : static void
    3030                 :          84 : _outCreateConversionStmt(StringInfo str, const CreateConversionStmt *node)
    3031                 :             : {
    3032                 :          84 :     WRITE_NODE_TYPE("CREATECONVERSIONSTMT");
    3033                 :             : 
    3034                 :          84 :     WRITE_NODE_FIELD(conversion_name);
    3035                 :          84 :     WRITE_STRING_FIELD(for_encoding_name);
    3036                 :          84 :     WRITE_STRING_FIELD(to_encoding_name);
    3037                 :          84 :     WRITE_NODE_FIELD(func_name);
    3038         [ +  + ]:          84 :     WRITE_BOOL_FIELD(def);
    3039                 :          84 : }
    3040                 :             : 
    3041                 :             : static void
    3042                 :         384 : _outCreateCastStmt(StringInfo str, const CreateCastStmt *node)
    3043                 :             : {
    3044                 :         384 :     WRITE_NODE_TYPE("CREATECASTSTMT");
    3045                 :             : 
    3046                 :         384 :     WRITE_NODE_FIELD(sourcetype);
    3047                 :         384 :     WRITE_NODE_FIELD(targettype);
    3048                 :         384 :     WRITE_NODE_FIELD(func);
    3049                 :         384 :     WRITE_ENUM_FIELD(context, CoercionContext);
    3050         [ +  + ]:         384 :     WRITE_BOOL_FIELD(inout);
    3051                 :         384 : }
    3052                 :             : 
    3053                 :             : static void
    3054                 :          52 : _outCreateTransformStmt(StringInfo str, const CreateTransformStmt *node)
    3055                 :             : {
    3056                 :          52 :     WRITE_NODE_TYPE("CREATETRANSFORMSTMT");
    3057                 :             : 
    3058         [ +  + ]:          52 :     WRITE_BOOL_FIELD(replace);
    3059                 :          52 :     WRITE_NODE_FIELD(type_name);
    3060                 :          52 :     WRITE_STRING_FIELD(lang);
    3061                 :          52 :     WRITE_NODE_FIELD(fromsql);
    3062                 :          52 :     WRITE_NODE_FIELD(tosql);
    3063                 :          52 : }
    3064                 :             : 
    3065                 :             : static void
    3066                 :        2248 : _outPrepareStmt(StringInfo str, const PrepareStmt *node)
    3067                 :             : {
    3068                 :        2248 :     WRITE_NODE_TYPE("PREPARESTMT");
    3069                 :             : 
    3070                 :        2248 :     WRITE_STRING_FIELD(name);
    3071                 :        2248 :     WRITE_NODE_FIELD(argtypes);
    3072                 :        2248 :     WRITE_NODE_FIELD(query);
    3073                 :        2248 : }
    3074                 :             : 
    3075                 :             : static void
    3076                 :       17530 : _outExecuteStmt(StringInfo str, const ExecuteStmt *node)
    3077                 :             : {
    3078                 :       17530 :     WRITE_NODE_TYPE("EXECUTESTMT");
    3079                 :             : 
    3080                 :       17530 :     WRITE_STRING_FIELD(name);
    3081                 :       17530 :     WRITE_NODE_FIELD(params);
    3082                 :       17530 : }
    3083                 :             : 
    3084                 :             : static void
    3085                 :        4178 : _outDeallocateStmt(StringInfo str, const DeallocateStmt *node)
    3086                 :             : {
    3087                 :        4178 :     WRITE_NODE_TYPE("DEALLOCATESTMT");
    3088                 :             : 
    3089                 :        4178 :     WRITE_STRING_FIELD(name);
    3090         [ +  + ]:        4178 :     WRITE_BOOL_FIELD(isall);
    3091         [ +  - ]:        4178 :     WRITE_LOCATION_FIELD(location);
    3092                 :        4178 : }
    3093                 :             : 
    3094                 :             : static void
    3095                 :         206 : _outDropOwnedStmt(StringInfo str, const DropOwnedStmt *node)
    3096                 :             : {
    3097                 :         206 :     WRITE_NODE_TYPE("DROPOWNEDSTMT");
    3098                 :             : 
    3099                 :         206 :     WRITE_NODE_FIELD(roles);
    3100                 :         206 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    3101                 :         206 : }
    3102                 :             : 
    3103                 :             : static void
    3104                 :          78 : _outReassignOwnedStmt(StringInfo str, const ReassignOwnedStmt *node)
    3105                 :             : {
    3106                 :          78 :     WRITE_NODE_TYPE("REASSIGNOWNEDSTMT");
    3107                 :             : 
    3108                 :          78 :     WRITE_NODE_FIELD(roles);
    3109                 :          78 :     WRITE_NODE_FIELD(newrole);
    3110                 :          78 : }
    3111                 :             : 
    3112                 :             : static void
    3113                 :          46 : _outAlterTSDictionaryStmt(StringInfo str, const AlterTSDictionaryStmt *node)
    3114                 :             : {
    3115                 :          46 :     WRITE_NODE_TYPE("ALTERTSDICTIONARYSTMT");
    3116                 :             : 
    3117                 :          46 :     WRITE_NODE_FIELD(dictname);
    3118                 :          46 :     WRITE_NODE_FIELD(options);
    3119                 :          46 : }
    3120                 :             : 
    3121                 :             : static void
    3122                 :       10872 : _outAlterTSConfigurationStmt(StringInfo str, const AlterTSConfigurationStmt *node)
    3123                 :             : {
    3124                 :       10872 :     WRITE_NODE_TYPE("ALTERTSCONFIGURATIONSTMT");
    3125                 :             : 
    3126                 :       10872 :     WRITE_ENUM_FIELD(kind, AlterTSConfigType);
    3127                 :       10872 :     WRITE_NODE_FIELD(cfgname);
    3128                 :       10872 :     WRITE_NODE_FIELD(tokentype);
    3129                 :       10872 :     WRITE_NODE_FIELD(dicts);
    3130         [ +  + ]:       10872 :     WRITE_BOOL_FIELD(override);
    3131         [ +  + ]:       10872 :     WRITE_BOOL_FIELD(replace);
    3132         [ +  + ]:       10872 :     WRITE_BOOL_FIELD(missing_ok);
    3133                 :       10872 : }
    3134                 :             : 
    3135                 :             : static void
    3136                 :        2096 : _outPublicationTable(StringInfo str, const PublicationTable *node)
    3137                 :             : {
    3138                 :        2096 :     WRITE_NODE_TYPE("PUBLICATIONTABLE");
    3139                 :             : 
    3140                 :        2096 :     WRITE_NODE_FIELD(relation);
    3141                 :        2096 :     WRITE_NODE_FIELD(whereClause);
    3142                 :        2096 :     WRITE_NODE_FIELD(columns);
    3143         [ +  + ]:        2096 :     WRITE_BOOL_FIELD(except);
    3144                 :        2096 : }
    3145                 :             : 
    3146                 :             : static void
    3147                 :        2626 : _outPublicationObjSpec(StringInfo str, const PublicationObjSpec *node)
    3148                 :             : {
    3149                 :        2626 :     WRITE_NODE_TYPE("PUBLICATIONOBJSPEC");
    3150                 :             : 
    3151                 :        2626 :     WRITE_ENUM_FIELD(pubobjtype, PublicationObjSpecType);
    3152                 :        2626 :     WRITE_STRING_FIELD(name);
    3153                 :        2626 :     WRITE_NODE_FIELD(pubtable);
    3154         [ +  - ]:        2626 :     WRITE_LOCATION_FIELD(location);
    3155                 :        2626 : }
    3156                 :             : 
    3157                 :             : static void
    3158                 :           0 : _outPublicationAllObjSpec(StringInfo str, const PublicationAllObjSpec *node)
    3159                 :             : {
    3160                 :           0 :     WRITE_NODE_TYPE("PUBLICATIONALLOBJSPEC");
    3161                 :             : 
    3162                 :           0 :     WRITE_ENUM_FIELD(pubobjtype, PublicationAllObjType);
    3163                 :           0 :     WRITE_NODE_FIELD(except_tables);
    3164         [ #  # ]:           0 :     WRITE_LOCATION_FIELD(location);
    3165                 :           0 : }
    3166                 :             : 
    3167                 :             : static void
    3168                 :        1314 : _outCreatePublicationStmt(StringInfo str, const CreatePublicationStmt *node)
    3169                 :             : {
    3170                 :        1314 :     WRITE_NODE_TYPE("CREATEPUBLICATIONSTMT");
    3171                 :             : 
    3172                 :        1314 :     WRITE_STRING_FIELD(pubname);
    3173                 :        1314 :     WRITE_NODE_FIELD(options);
    3174                 :        1314 :     WRITE_NODE_FIELD(pubobjects);
    3175         [ +  + ]:        1314 :     WRITE_BOOL_FIELD(for_all_tables);
    3176         [ +  + ]:        1314 :     WRITE_BOOL_FIELD(for_all_sequences);
    3177                 :        1314 : }
    3178                 :             : 
    3179                 :             : static void
    3180                 :        1568 : _outAlterPublicationStmt(StringInfo str, const AlterPublicationStmt *node)
    3181                 :             : {
    3182                 :        1568 :     WRITE_NODE_TYPE("ALTERPUBLICATIONSTMT");
    3183                 :             : 
    3184                 :        1568 :     WRITE_STRING_FIELD(pubname);
    3185                 :        1568 :     WRITE_NODE_FIELD(options);
    3186                 :        1568 :     WRITE_NODE_FIELD(pubobjects);
    3187                 :        1568 :     WRITE_ENUM_FIELD(action, AlterPublicationAction);
    3188         [ +  + ]:        1568 :     WRITE_BOOL_FIELD(for_all_tables);
    3189         [ +  + ]:        1568 :     WRITE_BOOL_FIELD(for_all_sequences);
    3190                 :        1568 : }
    3191                 :             : 
    3192                 :             : static void
    3193                 :         678 : _outCreateSubscriptionStmt(StringInfo str, const CreateSubscriptionStmt *node)
    3194                 :             : {
    3195                 :         678 :     WRITE_NODE_TYPE("CREATESUBSCRIPTIONSTMT");
    3196                 :             : 
    3197                 :         678 :     WRITE_STRING_FIELD(subname);
    3198                 :         678 :     WRITE_STRING_FIELD(servername);
    3199                 :         678 :     WRITE_STRING_FIELD(conninfo);
    3200                 :         678 :     WRITE_NODE_FIELD(publication);
    3201                 :         678 :     WRITE_NODE_FIELD(options);
    3202                 :         678 : }
    3203                 :             : 
    3204                 :             : static void
    3205                 :         907 : _outAlterSubscriptionStmt(StringInfo str, const AlterSubscriptionStmt *node)
    3206                 :             : {
    3207                 :         907 :     WRITE_NODE_TYPE("ALTERSUBSCRIPTIONSTMT");
    3208                 :             : 
    3209                 :         907 :     WRITE_ENUM_FIELD(kind, AlterSubscriptionType);
    3210                 :         907 :     WRITE_STRING_FIELD(subname);
    3211                 :         907 :     WRITE_STRING_FIELD(servername);
    3212                 :         907 :     WRITE_STRING_FIELD(conninfo);
    3213                 :         907 :     WRITE_NODE_FIELD(publication);
    3214                 :         907 :     WRITE_NODE_FIELD(options);
    3215                 :         907 : }
    3216                 :             : 
    3217                 :             : static void
    3218                 :         368 : _outDropSubscriptionStmt(StringInfo str, const DropSubscriptionStmt *node)
    3219                 :             : {
    3220                 :         368 :     WRITE_NODE_TYPE("DROPSUBSCRIPTIONSTMT");
    3221                 :             : 
    3222                 :         368 :     WRITE_STRING_FIELD(subname);
    3223         [ +  + ]:         368 :     WRITE_BOOL_FIELD(missing_ok);
    3224                 :         368 :     WRITE_ENUM_FIELD(behavior, DropBehavior);
    3225                 :         368 : }
    3226                 :             : 
    3227                 :             : static void
    3228                 :         577 : _outWaitStmt(StringInfo str, const WaitStmt *node)
    3229                 :             : {
    3230                 :         577 :     WRITE_NODE_TYPE("WAITSTMT");
    3231                 :             : 
    3232                 :         577 :     WRITE_STRING_FIELD(lsn_literal);
    3233                 :         577 :     WRITE_NODE_FIELD(options);
    3234         [ +  - ]:         577 :     WRITE_LOCATION_FIELD(lsn_location);
    3235                 :         577 : }
    3236                 :             : 
    3237                 :             : static void
    3238                 :           0 : _outPlannerGlobal(StringInfo str, const PlannerGlobal *node)
    3239                 :             : {
    3240                 :           0 :     WRITE_NODE_TYPE("PLANNERGLOBAL");
    3241                 :             : 
    3242                 :           0 :     WRITE_NODE_FIELD(subplans);
    3243                 :           0 :     WRITE_NODE_FIELD(subpaths);
    3244                 :           0 :     WRITE_BITMAPSET_FIELD(rewindPlanIDs);
    3245                 :           0 :     WRITE_NODE_FIELD(finalrtable);
    3246                 :           0 :     WRITE_BITMAPSET_FIELD(allRelids);
    3247                 :           0 :     WRITE_BITMAPSET_FIELD(prunableRelids);
    3248                 :           0 :     WRITE_NODE_FIELD(finalrteperminfos);
    3249                 :           0 :     WRITE_NODE_FIELD(subrtinfos);
    3250                 :           0 :     WRITE_NODE_FIELD(finalrowmarks);
    3251                 :           0 :     WRITE_NODE_FIELD(resultRelations);
    3252                 :           0 :     WRITE_NODE_FIELD(appendRelations);
    3253                 :           0 :     WRITE_NODE_FIELD(partPruneInfos);
    3254                 :           0 :     WRITE_NODE_FIELD(relationOids);
    3255                 :           0 :     WRITE_NODE_FIELD(invalItems);
    3256                 :           0 :     WRITE_NODE_FIELD(paramExecTypes);
    3257                 :           0 :     WRITE_NODE_FIELD(elidedNodes);
    3258                 :           0 :     WRITE_UINT_FIELD(lastPHId);
    3259                 :           0 :     WRITE_UINT_FIELD(lastRowMarkId);
    3260                 :           0 :     WRITE_INT_FIELD(lastPlanNodeId);
    3261         [ #  # ]:           0 :     WRITE_BOOL_FIELD(transientPlan);
    3262         [ #  # ]:           0 :     WRITE_BOOL_FIELD(dependsOnRole);
    3263         [ #  # ]:           0 :     WRITE_BOOL_FIELD(parallelModeOK);
    3264         [ #  # ]:           0 :     WRITE_BOOL_FIELD(parallelModeNeeded);
    3265                 :           0 :     WRITE_CHAR_FIELD(maxParallelHazard);
    3266                 :           0 :     WRITE_UINT64_FIELD(default_pgs_mask);
    3267                 :           0 :     WRITE_INT_FIELD(extension_state_allocated);
    3268                 :           0 : }
    3269                 :             : 
    3270                 :             : static void
    3271                 :           0 : _outPlannerInfo(StringInfo str, const PlannerInfo *node)
    3272                 :             : {
    3273                 :           0 :     WRITE_NODE_TYPE("PLANNERINFO");
    3274                 :             : 
    3275                 :           0 :     WRITE_NODE_FIELD(parse);
    3276                 :           0 :     WRITE_NODE_FIELD(glob);
    3277                 :           0 :     WRITE_UINT_FIELD(query_level);
    3278                 :           0 :     WRITE_STRING_FIELD(plan_name);
    3279                 :           0 :     WRITE_STRING_FIELD(alternative_plan_name);
    3280                 :           0 :     WRITE_NODE_FIELD(plan_params);
    3281                 :           0 :     WRITE_BITMAPSET_FIELD(outer_params);
    3282                 :           0 :     WRITE_NODE_ARRAY(simple_rel_array, node->simple_rel_array_size);
    3283                 :           0 :     WRITE_INT_FIELD(simple_rel_array_size);
    3284                 :           0 :     WRITE_BITMAPSET_FIELD(all_baserels);
    3285                 :           0 :     WRITE_BITMAPSET_FIELD(outer_join_rels);
    3286                 :           0 :     WRITE_BITMAPSET_FIELD(all_query_rels);
    3287                 :           0 :     WRITE_NODE_FIELD(join_rel_list);
    3288                 :           0 :     WRITE_INT_FIELD(join_cur_level);
    3289                 :           0 :     WRITE_NODE_FIELD(init_plans);
    3290                 :           0 :     WRITE_NODE_FIELD(cte_plan_ids);
    3291                 :           0 :     WRITE_NODE_FIELD(multiexpr_params);
    3292                 :           0 :     WRITE_NODE_FIELD(join_domains);
    3293                 :           0 :     WRITE_NODE_FIELD(eq_classes);
    3294         [ #  # ]:           0 :     WRITE_BOOL_FIELD(ec_merging_done);
    3295                 :           0 :     WRITE_NODE_FIELD(canon_pathkeys);
    3296                 :           0 :     WRITE_NODE_FIELD(left_join_clauses);
    3297                 :           0 :     WRITE_NODE_FIELD(right_join_clauses);
    3298                 :           0 :     WRITE_NODE_FIELD(full_join_clauses);
    3299                 :           0 :     WRITE_NODE_FIELD(join_info_list);
    3300                 :           0 :     WRITE_INT_FIELD(last_rinfo_serial);
    3301                 :           0 :     WRITE_BITMAPSET_FIELD(all_result_relids);
    3302                 :           0 :     WRITE_BITMAPSET_FIELD(leaf_result_relids);
    3303                 :           0 :     WRITE_NODE_FIELD(append_rel_list);
    3304                 :           0 :     WRITE_NODE_FIELD(row_identity_vars);
    3305                 :           0 :     WRITE_NODE_FIELD(rowMarks);
    3306                 :           0 :     WRITE_NODE_FIELD(placeholder_list);
    3307                 :           0 :     WRITE_NODE_FIELD(agg_clause_list);
    3308                 :           0 :     WRITE_NODE_FIELD(group_expr_list);
    3309                 :           0 :     WRITE_NODE_FIELD(tlist_vars);
    3310                 :           0 :     WRITE_NODE_FIELD(fkey_list);
    3311                 :           0 :     WRITE_NODE_FIELD(query_pathkeys);
    3312                 :           0 :     WRITE_NODE_FIELD(group_pathkeys);
    3313                 :           0 :     WRITE_INT_FIELD(num_groupby_pathkeys);
    3314                 :           0 :     WRITE_NODE_FIELD(window_pathkeys);
    3315                 :           0 :     WRITE_NODE_FIELD(distinct_pathkeys);
    3316                 :           0 :     WRITE_NODE_FIELD(sort_pathkeys);
    3317                 :           0 :     WRITE_NODE_FIELD(setop_pathkeys);
    3318                 :           0 :     WRITE_NODE_FIELD(processed_groupClause);
    3319                 :           0 :     WRITE_NODE_FIELD(processed_distinctClause);
    3320                 :           0 :     WRITE_NODE_FIELD(processed_tlist);
    3321                 :           0 :     WRITE_NODE_FIELD(update_colnos);
    3322                 :           0 :     WRITE_NODE_FIELD(minmax_aggs);
    3323                 :           0 :     WRITE_FLOAT_FIELD(total_table_pages);
    3324                 :           0 :     WRITE_FLOAT_FIELD(tuple_fraction);
    3325                 :           0 :     WRITE_FLOAT_FIELD(limit_tuples);
    3326                 :           0 :     WRITE_UINT_FIELD(qual_security_level);
    3327         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasJoinRTEs);
    3328         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasLateralRTEs);
    3329         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasHavingQual);
    3330         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasPseudoConstantQuals);
    3331         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasAlternativeSubPlans);
    3332         [ #  # ]:           0 :     WRITE_BOOL_FIELD(placeholdersFrozen);
    3333         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasRecursion);
    3334         [ #  # ]:           0 :     WRITE_BOOL_FIELD(assumeReplanning);
    3335                 :           0 :     WRITE_INT_FIELD(group_rtindex);
    3336                 :           0 :     WRITE_NODE_FIELD(agginfos);
    3337                 :           0 :     WRITE_NODE_FIELD(aggtransinfos);
    3338                 :           0 :     WRITE_INT_FIELD(numOrderedAggs);
    3339         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasNonPartialAggs);
    3340         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hasNonSerialAggs);
    3341                 :           0 :     WRITE_INT_FIELD(wt_param_id);
    3342                 :           0 :     WRITE_NODE_FIELD(non_recursive_path);
    3343                 :           0 :     WRITE_BITMAPSET_FIELD(curOuterRels);
    3344                 :           0 :     WRITE_NODE_FIELD(curOuterParams);
    3345                 :           0 :     WRITE_NODE_FIELD(partPruneInfos);
    3346                 :           0 :     WRITE_INT_FIELD(extension_state_allocated);
    3347                 :           0 : }
    3348                 :             : 
    3349                 :             : static void
    3350                 :           0 : _outRelOptInfo(StringInfo str, const RelOptInfo *node)
    3351                 :             : {
    3352                 :           0 :     WRITE_NODE_TYPE("RELOPTINFO");
    3353                 :             : 
    3354                 :           0 :     WRITE_ENUM_FIELD(reloptkind, RelOptKind);
    3355                 :           0 :     WRITE_BITMAPSET_FIELD(relids);
    3356                 :           0 :     WRITE_FLOAT_FIELD(rows);
    3357         [ #  # ]:           0 :     WRITE_BOOL_FIELD(consider_startup);
    3358         [ #  # ]:           0 :     WRITE_BOOL_FIELD(consider_param_startup);
    3359         [ #  # ]:           0 :     WRITE_BOOL_FIELD(consider_parallel);
    3360                 :           0 :     WRITE_UINT64_FIELD(pgs_mask);
    3361                 :           0 :     WRITE_NODE_FIELD(reltarget);
    3362                 :           0 :     WRITE_NODE_FIELD(pathlist);
    3363                 :           0 :     WRITE_NODE_FIELD(ppilist);
    3364                 :           0 :     WRITE_NODE_FIELD(partial_pathlist);
    3365                 :           0 :     WRITE_NODE_FIELD(cheapest_startup_path);
    3366                 :           0 :     WRITE_NODE_FIELD(cheapest_total_path);
    3367                 :           0 :     WRITE_NODE_FIELD(cheapest_parameterized_paths);
    3368                 :           0 :     WRITE_BITMAPSET_FIELD(direct_lateral_relids);
    3369                 :           0 :     WRITE_BITMAPSET_FIELD(lateral_relids);
    3370                 :           0 :     WRITE_UINT_FIELD(relid);
    3371                 :           0 :     WRITE_OID_FIELD(reltablespace);
    3372                 :           0 :     WRITE_ENUM_FIELD(rtekind, RTEKind);
    3373                 :           0 :     WRITE_INT_FIELD(min_attr);
    3374                 :           0 :     WRITE_INT_FIELD(max_attr);
    3375                 :           0 :     WRITE_BITMAPSET_FIELD(notnullattnums);
    3376                 :           0 :     WRITE_BITMAPSET_FIELD(nulling_relids);
    3377                 :           0 :     WRITE_NODE_FIELD(lateral_vars);
    3378                 :           0 :     WRITE_BITMAPSET_FIELD(lateral_referencers);
    3379                 :           0 :     WRITE_NODE_FIELD(indexlist);
    3380                 :           0 :     WRITE_NODE_FIELD(statlist);
    3381                 :           0 :     WRITE_UINT_FIELD(pages);
    3382                 :           0 :     WRITE_FLOAT_FIELD(tuples);
    3383                 :           0 :     WRITE_FLOAT_FIELD(allvisfrac);
    3384                 :           0 :     WRITE_BITMAPSET_FIELD(eclass_indexes);
    3385                 :           0 :     WRITE_NODE_FIELD(subroot);
    3386                 :           0 :     WRITE_NODE_FIELD(subplan_params);
    3387                 :           0 :     WRITE_INT_FIELD(rel_parallel_workers);
    3388                 :           0 :     WRITE_UINT_FIELD(amflags);
    3389                 :           0 :     WRITE_OID_FIELD(serverid);
    3390                 :           0 :     WRITE_OID_FIELD(userid);
    3391         [ #  # ]:           0 :     WRITE_BOOL_FIELD(useridiscurrent);
    3392                 :           0 :     WRITE_NODE_FIELD(unique_for_rels);
    3393                 :           0 :     WRITE_NODE_FIELD(non_unique_for_rels);
    3394                 :           0 :     WRITE_NODE_FIELD(unique_rel);
    3395                 :           0 :     WRITE_NODE_FIELD(unique_pathkeys);
    3396                 :           0 :     WRITE_NODE_FIELD(unique_groupclause);
    3397                 :           0 :     WRITE_NODE_FIELD(baserestrictinfo);
    3398                 :           0 :     WRITE_FLOAT_FIELD(baserestrictcost.startup);
    3399                 :           0 :     WRITE_FLOAT_FIELD(baserestrictcost.per_tuple);
    3400                 :           0 :     WRITE_UINT_FIELD(baserestrict_min_security);
    3401                 :           0 :     WRITE_NODE_FIELD(joininfo);
    3402         [ #  # ]:           0 :     WRITE_BOOL_FIELD(has_eclass_joins);
    3403         [ #  # ]:           0 :     WRITE_BOOL_FIELD(consider_partitionwise_join);
    3404                 :           0 :     WRITE_NODE_FIELD(agg_info);
    3405                 :           0 :     WRITE_NODE_FIELD(grouped_rel);
    3406                 :           0 :     WRITE_BITMAPSET_FIELD(top_parent_relids);
    3407                 :           0 :     WRITE_INT_FIELD(nparts);
    3408         [ #  # ]:           0 :     WRITE_BOOL_FIELD(partbounds_merged);
    3409                 :           0 :     WRITE_NODE_FIELD(partition_qual);
    3410                 :           0 :     WRITE_BITMAPSET_FIELD(live_parts);
    3411                 :           0 :     WRITE_BITMAPSET_FIELD(all_partrels);
    3412                 :           0 :     WRITE_INT_FIELD(extension_state_allocated);
    3413                 :           0 : }
    3414                 :             : 
    3415                 :             : static void
    3416                 :           0 : _outRelAggInfo(StringInfo str, const RelAggInfo *node)
    3417                 :             : {
    3418                 :           0 :     WRITE_NODE_TYPE("RELAGGINFO");
    3419                 :             : 
    3420                 :           0 :     WRITE_NODE_FIELD(target);
    3421                 :           0 :     WRITE_NODE_FIELD(agg_input);
    3422                 :           0 :     WRITE_NODE_FIELD(group_clauses);
    3423                 :           0 :     WRITE_NODE_FIELD(group_exprs);
    3424                 :           0 :     WRITE_BITMAPSET_FIELD(apply_agg_at);
    3425                 :           0 :     WRITE_FLOAT_FIELD(grouped_rows);
    3426         [ #  # ]:           0 :     WRITE_BOOL_FIELD(agg_useful);
    3427                 :           0 : }
    3428                 :             : 
    3429                 :             : static void
    3430                 :           0 : _outIndexOptInfo(StringInfo str, const IndexOptInfo *node)
    3431                 :             : {
    3432                 :           0 :     WRITE_NODE_TYPE("INDEXOPTINFO");
    3433                 :             : 
    3434                 :           0 :     WRITE_OID_FIELD(indexoid);
    3435                 :           0 :     WRITE_OID_FIELD(reltablespace);
    3436                 :           0 :     WRITE_UINT_FIELD(pages);
    3437                 :           0 :     WRITE_FLOAT_FIELD(tuples);
    3438                 :           0 :     WRITE_INT_FIELD(tree_height);
    3439                 :           0 :     WRITE_INT_FIELD(ncolumns);
    3440                 :           0 :     WRITE_INT_FIELD(nkeycolumns);
    3441                 :           0 :     WRITE_INT_ARRAY(indexkeys, node->ncolumns);
    3442                 :           0 :     WRITE_OID_ARRAY(indexcollations, node->nkeycolumns);
    3443                 :           0 :     WRITE_OID_ARRAY(opfamily, node->nkeycolumns);
    3444                 :           0 :     WRITE_OID_ARRAY(opcintype, node->nkeycolumns);
    3445                 :           0 :     WRITE_OID_ARRAY(sortopfamily, node->nkeycolumns);
    3446                 :           0 :     WRITE_BOOL_ARRAY(reverse_sort, node->nkeycolumns);
    3447                 :           0 :     WRITE_BOOL_ARRAY(nulls_first, node->nkeycolumns);
    3448                 :           0 :     WRITE_BOOL_ARRAY(canreturn, node->ncolumns);
    3449                 :           0 :     WRITE_OID_FIELD(relam);
    3450                 :           0 :     WRITE_NODE_FIELD(indpred);
    3451                 :           0 :     WRITE_NODE_FIELD(indextlist);
    3452                 :           0 :     WRITE_NODE_FIELD(indrestrictinfo);
    3453         [ #  # ]:           0 :     WRITE_BOOL_FIELD(predOK);
    3454         [ #  # ]:           0 :     WRITE_BOOL_FIELD(unique);
    3455         [ #  # ]:           0 :     WRITE_BOOL_FIELD(nullsnotdistinct);
    3456         [ #  # ]:           0 :     WRITE_BOOL_FIELD(immediate);
    3457         [ #  # ]:           0 :     WRITE_BOOL_FIELD(disabled);
    3458         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hypothetical);
    3459         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amcanorderbyop);
    3460         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amoptionalkey);
    3461         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amsearcharray);
    3462         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amsearchnulls);
    3463         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amhasgettuple);
    3464         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amhasgetbitmap);
    3465         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amcanparallel);
    3466         [ #  # ]:           0 :     WRITE_BOOL_FIELD(amcanmarkpos);
    3467                 :           0 : }
    3468                 :             : 
    3469                 :             : static void
    3470                 :           0 : _outStatisticExtInfo(StringInfo str, const StatisticExtInfo *node)
    3471                 :             : {
    3472                 :           0 :     WRITE_NODE_TYPE("STATISTICEXTINFO");
    3473                 :             : 
    3474                 :           0 :     WRITE_OID_FIELD(statOid);
    3475         [ #  # ]:           0 :     WRITE_BOOL_FIELD(inherit);
    3476                 :           0 :     WRITE_CHAR_FIELD(kind);
    3477                 :           0 :     WRITE_BITMAPSET_FIELD(keys);
    3478                 :           0 :     WRITE_NODE_FIELD(exprs);
    3479                 :           0 : }
    3480                 :             : 
    3481                 :             : static void
    3482                 :           0 : _outJoinDomain(StringInfo str, const JoinDomain *node)
    3483                 :             : {
    3484                 :           0 :     WRITE_NODE_TYPE("JOINDOMAIN");
    3485                 :             : 
    3486                 :           0 :     WRITE_BITMAPSET_FIELD(jd_relids);
    3487                 :           0 : }
    3488                 :             : 
    3489                 :             : static void
    3490                 :           0 : _outEquivalenceMember(StringInfo str, const EquivalenceMember *node)
    3491                 :             : {
    3492                 :           0 :     WRITE_NODE_TYPE("EQUIVALENCEMEMBER");
    3493                 :             : 
    3494                 :           0 :     WRITE_NODE_FIELD(em_expr);
    3495                 :           0 :     WRITE_BITMAPSET_FIELD(em_relids);
    3496         [ #  # ]:           0 :     WRITE_BOOL_FIELD(em_is_const);
    3497         [ #  # ]:           0 :     WRITE_BOOL_FIELD(em_is_child);
    3498                 :           0 :     WRITE_OID_FIELD(em_datatype);
    3499                 :           0 :     WRITE_NODE_FIELD(em_jdomain);
    3500                 :           0 : }
    3501                 :             : 
    3502                 :             : static void
    3503                 :           0 : _outPathKey(StringInfo str, const PathKey *node)
    3504                 :             : {
    3505                 :           0 :     WRITE_NODE_TYPE("PATHKEY");
    3506                 :             : 
    3507                 :           0 :     WRITE_NODE_FIELD(pk_eclass);
    3508                 :           0 :     WRITE_OID_FIELD(pk_opfamily);
    3509                 :           0 :     WRITE_ENUM_FIELD(pk_cmptype, CompareType);
    3510         [ #  # ]:           0 :     WRITE_BOOL_FIELD(pk_nulls_first);
    3511                 :           0 : }
    3512                 :             : 
    3513                 :             : static void
    3514                 :           0 : _outGroupByOrdering(StringInfo str, const GroupByOrdering *node)
    3515                 :             : {
    3516                 :           0 :     WRITE_NODE_TYPE("GROUPBYORDERING");
    3517                 :             : 
    3518                 :           0 :     WRITE_NODE_FIELD(pathkeys);
    3519                 :           0 :     WRITE_NODE_FIELD(clauses);
    3520                 :           0 : }
    3521                 :             : 
    3522                 :             : static void
    3523                 :           0 : _outPathTarget(StringInfo str, const PathTarget *node)
    3524                 :             : {
    3525                 :           0 :     WRITE_NODE_TYPE("PATHTARGET");
    3526                 :             : 
    3527                 :           0 :     WRITE_NODE_FIELD(exprs);
    3528                 :           0 :     WRITE_INDEX_ARRAY(sortgrouprefs, list_length(node->exprs));
    3529                 :           0 :     WRITE_FLOAT_FIELD(cost.startup);
    3530                 :           0 :     WRITE_FLOAT_FIELD(cost.per_tuple);
    3531                 :           0 :     WRITE_INT_FIELD(width);
    3532                 :           0 :     WRITE_ENUM_FIELD(has_volatile_expr, VolatileFunctionStatus);
    3533                 :           0 : }
    3534                 :             : 
    3535                 :             : static void
    3536                 :           0 : _outParamPathInfo(StringInfo str, const ParamPathInfo *node)
    3537                 :             : {
    3538                 :           0 :     WRITE_NODE_TYPE("PARAMPATHINFO");
    3539                 :             : 
    3540                 :           0 :     WRITE_BITMAPSET_FIELD(ppi_req_outer);
    3541                 :           0 :     WRITE_FLOAT_FIELD(ppi_rows);
    3542                 :           0 :     WRITE_NODE_FIELD(ppi_clauses);
    3543                 :           0 :     WRITE_BITMAPSET_FIELD(ppi_serials);
    3544                 :           0 : }
    3545                 :             : 
    3546                 :             : static void
    3547                 :           0 : _outPath(StringInfo str, const Path *node)
    3548                 :             : {
    3549                 :           0 :     WRITE_NODE_TYPE("PATH");
    3550                 :             : 
    3551                 :           0 :     WRITE_ENUM_FIELD(pathtype, NodeTag);
    3552                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3553                 :           0 :     outBitmapset(str, node->parent->relids);
    3554         [ #  # ]:           0 :     if (node->pathtarget != node->parent->reltarget)
    3555                 :           0 :         WRITE_NODE_FIELD(pathtarget);
    3556                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3557         [ #  # ]:           0 :     if (node->param_info)
    3558                 :           0 :         outBitmapset(str, node->param_info->ppi_req_outer);
    3559                 :             :     else
    3560                 :           0 :         outBitmapset(str, NULL);
    3561         [ #  # ]:           0 :     WRITE_BOOL_FIELD(parallel_aware);
    3562         [ #  # ]:           0 :     WRITE_BOOL_FIELD(parallel_safe);
    3563                 :           0 :     WRITE_INT_FIELD(parallel_workers);
    3564                 :           0 :     WRITE_FLOAT_FIELD(rows);
    3565                 :           0 :     WRITE_INT_FIELD(disabled_nodes);
    3566                 :           0 :     WRITE_FLOAT_FIELD(startup_cost);
    3567                 :           0 :     WRITE_FLOAT_FIELD(total_cost);
    3568                 :           0 :     WRITE_NODE_FIELD(pathkeys);
    3569                 :           0 : }
    3570                 :             : 
    3571                 :             : static void
    3572                 :           0 : _outIndexPath(StringInfo str, const IndexPath *node)
    3573                 :             : {
    3574                 :           0 :     WRITE_NODE_TYPE("INDEXPATH");
    3575                 :             : 
    3576                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3577                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3578                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3579         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3580                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3581                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3582         [ #  # ]:           0 :     if (node->path.param_info)
    3583                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3584                 :             :     else
    3585                 :           0 :         outBitmapset(str, NULL);
    3586         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3587         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3588                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3589                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3590                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3591                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3592                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3593                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3594                 :           0 :     WRITE_NODE_FIELD(indexinfo);
    3595                 :           0 :     WRITE_NODE_FIELD(indexclauses);
    3596                 :           0 :     WRITE_NODE_FIELD(indexorderbys);
    3597                 :           0 :     WRITE_NODE_FIELD(indexorderbycols);
    3598                 :           0 :     WRITE_ENUM_FIELD(indexscandir, ScanDirection);
    3599                 :           0 :     WRITE_FLOAT_FIELD(indextotalcost);
    3600                 :           0 :     WRITE_FLOAT_FIELD(indexselectivity);
    3601                 :           0 : }
    3602                 :             : 
    3603                 :             : static void
    3604                 :           0 : _outIndexClause(StringInfo str, const IndexClause *node)
    3605                 :             : {
    3606                 :           0 :     WRITE_NODE_TYPE("INDEXCLAUSE");
    3607                 :             : 
    3608                 :           0 :     WRITE_NODE_FIELD(rinfo);
    3609                 :           0 :     WRITE_NODE_FIELD(indexquals);
    3610         [ #  # ]:           0 :     WRITE_BOOL_FIELD(lossy);
    3611                 :           0 :     WRITE_INT_FIELD(indexcol);
    3612                 :           0 :     WRITE_NODE_FIELD(indexcols);
    3613                 :           0 : }
    3614                 :             : 
    3615                 :             : static void
    3616                 :           0 : _outBitmapHeapPath(StringInfo str, const BitmapHeapPath *node)
    3617                 :             : {
    3618                 :           0 :     WRITE_NODE_TYPE("BITMAPHEAPPATH");
    3619                 :             : 
    3620                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3621                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3622                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3623         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3624                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3625                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3626         [ #  # ]:           0 :     if (node->path.param_info)
    3627                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3628                 :             :     else
    3629                 :           0 :         outBitmapset(str, NULL);
    3630         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3631         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3632                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3633                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3634                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3635                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3636                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3637                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3638                 :           0 :     WRITE_NODE_FIELD(bitmapqual);
    3639                 :           0 : }
    3640                 :             : 
    3641                 :             : static void
    3642                 :           0 : _outBitmapAndPath(StringInfo str, const BitmapAndPath *node)
    3643                 :             : {
    3644                 :           0 :     WRITE_NODE_TYPE("BITMAPANDPATH");
    3645                 :             : 
    3646                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3647                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3648                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3649         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3650                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3651                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3652         [ #  # ]:           0 :     if (node->path.param_info)
    3653                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3654                 :             :     else
    3655                 :           0 :         outBitmapset(str, NULL);
    3656         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3657         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3658                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3659                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3660                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3661                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3662                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3663                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3664                 :           0 :     WRITE_NODE_FIELD(bitmapquals);
    3665                 :           0 :     WRITE_FLOAT_FIELD(bitmapselectivity);
    3666                 :           0 : }
    3667                 :             : 
    3668                 :             : static void
    3669                 :           0 : _outBitmapOrPath(StringInfo str, const BitmapOrPath *node)
    3670                 :             : {
    3671                 :           0 :     WRITE_NODE_TYPE("BITMAPORPATH");
    3672                 :             : 
    3673                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3674                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3675                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3676         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3677                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3678                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3679         [ #  # ]:           0 :     if (node->path.param_info)
    3680                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3681                 :             :     else
    3682                 :           0 :         outBitmapset(str, NULL);
    3683         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3684         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3685                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3686                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3687                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3688                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3689                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3690                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3691                 :           0 :     WRITE_NODE_FIELD(bitmapquals);
    3692                 :           0 :     WRITE_FLOAT_FIELD(bitmapselectivity);
    3693                 :           0 : }
    3694                 :             : 
    3695                 :             : static void
    3696                 :           0 : _outTidPath(StringInfo str, const TidPath *node)
    3697                 :             : {
    3698                 :           0 :     WRITE_NODE_TYPE("TIDPATH");
    3699                 :             : 
    3700                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3701                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3702                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3703         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3704                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3705                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3706         [ #  # ]:           0 :     if (node->path.param_info)
    3707                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3708                 :             :     else
    3709                 :           0 :         outBitmapset(str, NULL);
    3710         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3711         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3712                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3713                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3714                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3715                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3716                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3717                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3718                 :           0 :     WRITE_NODE_FIELD(tidquals);
    3719                 :           0 : }
    3720                 :             : 
    3721                 :             : static void
    3722                 :           0 : _outTidRangePath(StringInfo str, const TidRangePath *node)
    3723                 :             : {
    3724                 :           0 :     WRITE_NODE_TYPE("TIDRANGEPATH");
    3725                 :             : 
    3726                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3727                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3728                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3729         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3730                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3731                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3732         [ #  # ]:           0 :     if (node->path.param_info)
    3733                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3734                 :             :     else
    3735                 :           0 :         outBitmapset(str, NULL);
    3736         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3737         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3738                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3739                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3740                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3741                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3742                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3743                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3744                 :           0 :     WRITE_NODE_FIELD(tidrangequals);
    3745                 :           0 : }
    3746                 :             : 
    3747                 :             : static void
    3748                 :           0 : _outSubqueryScanPath(StringInfo str, const SubqueryScanPath *node)
    3749                 :             : {
    3750                 :           0 :     WRITE_NODE_TYPE("SUBQUERYSCANPATH");
    3751                 :             : 
    3752                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3753                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3754                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3755         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3756                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3757                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3758         [ #  # ]:           0 :     if (node->path.param_info)
    3759                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3760                 :             :     else
    3761                 :           0 :         outBitmapset(str, NULL);
    3762         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3763         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3764                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3765                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3766                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3767                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3768                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3769                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3770                 :           0 :     WRITE_NODE_FIELD(subpath);
    3771                 :           0 : }
    3772                 :             : 
    3773                 :             : static void
    3774                 :           0 : _outForeignPath(StringInfo str, const ForeignPath *node)
    3775                 :             : {
    3776                 :           0 :     WRITE_NODE_TYPE("FOREIGNPATH");
    3777                 :             : 
    3778                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3779                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3780                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3781         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3782                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3783                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3784         [ #  # ]:           0 :     if (node->path.param_info)
    3785                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3786                 :             :     else
    3787                 :           0 :         outBitmapset(str, NULL);
    3788         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3789         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3790                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3791                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3792                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3793                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3794                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3795                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3796                 :           0 :     WRITE_NODE_FIELD(fdw_outerpath);
    3797                 :           0 :     WRITE_NODE_FIELD(fdw_restrictinfo);
    3798                 :           0 :     WRITE_NODE_FIELD(fdw_private);
    3799                 :           0 : }
    3800                 :             : 
    3801                 :             : static void
    3802                 :           0 : _outCustomPath(StringInfo str, const CustomPath *node)
    3803                 :             : {
    3804                 :           0 :     WRITE_NODE_TYPE("CUSTOMPATH");
    3805                 :             : 
    3806                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3807                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3808                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3809         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3810                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3811                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3812         [ #  # ]:           0 :     if (node->path.param_info)
    3813                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3814                 :             :     else
    3815                 :           0 :         outBitmapset(str, NULL);
    3816         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3817         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3818                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3819                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3820                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3821                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3822                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3823                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3824                 :           0 :     WRITE_UINT_FIELD(flags);
    3825                 :           0 :     WRITE_NODE_FIELD(custom_paths);
    3826                 :           0 :     WRITE_NODE_FIELD(custom_restrictinfo);
    3827                 :           0 :     WRITE_NODE_FIELD(custom_private);
    3828                 :             : 
    3829                 :             :     /* CustomName is a key to lookup CustomScanMethods */
    3830                 :           0 :     appendStringInfoString(str, " :methods ");
    3831                 :           0 :     outToken(str, node->methods->CustomName);
    3832                 :           0 : }
    3833                 :             : 
    3834                 :             : static void
    3835                 :           0 : _outAppendPath(StringInfo str, const AppendPath *node)
    3836                 :             : {
    3837                 :           0 :     WRITE_NODE_TYPE("APPENDPATH");
    3838                 :             : 
    3839                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3840                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3841                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3842         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3843                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3844                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3845         [ #  # ]:           0 :     if (node->path.param_info)
    3846                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3847                 :             :     else
    3848                 :           0 :         outBitmapset(str, NULL);
    3849         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3850         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3851                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3852                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3853                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3854                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3855                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3856                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3857                 :           0 :     WRITE_NODE_FIELD(subpaths);
    3858                 :           0 :     WRITE_INT_FIELD(first_partial_path);
    3859                 :           0 :     WRITE_FLOAT_FIELD(limit_tuples);
    3860                 :           0 :     WRITE_NODE_FIELD(child_append_relid_sets);
    3861                 :           0 : }
    3862                 :             : 
    3863                 :             : static void
    3864                 :           0 : _outMergeAppendPath(StringInfo str, const MergeAppendPath *node)
    3865                 :             : {
    3866                 :           0 :     WRITE_NODE_TYPE("MERGEAPPENDPATH");
    3867                 :             : 
    3868                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3869                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3870                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3871         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3872                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3873                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3874         [ #  # ]:           0 :     if (node->path.param_info)
    3875                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3876                 :             :     else
    3877                 :           0 :         outBitmapset(str, NULL);
    3878         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3879         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3880                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3881                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3882                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3883                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3884                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3885                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3886                 :           0 :     WRITE_NODE_FIELD(subpaths);
    3887                 :           0 :     WRITE_FLOAT_FIELD(limit_tuples);
    3888                 :           0 :     WRITE_NODE_FIELD(child_append_relid_sets);
    3889                 :           0 : }
    3890                 :             : 
    3891                 :             : static void
    3892                 :           0 : _outGroupResultPath(StringInfo str, const GroupResultPath *node)
    3893                 :             : {
    3894                 :           0 :     WRITE_NODE_TYPE("GROUPRESULTPATH");
    3895                 :             : 
    3896                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3897                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3898                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3899         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3900                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3901                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3902         [ #  # ]:           0 :     if (node->path.param_info)
    3903                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3904                 :             :     else
    3905                 :           0 :         outBitmapset(str, NULL);
    3906         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3907         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3908                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3909                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3910                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3911                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3912                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3913                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3914                 :           0 :     WRITE_NODE_FIELD(quals);
    3915                 :           0 : }
    3916                 :             : 
    3917                 :             : static void
    3918                 :           0 : _outMaterialPath(StringInfo str, const MaterialPath *node)
    3919                 :             : {
    3920                 :           0 :     WRITE_NODE_TYPE("MATERIALPATH");
    3921                 :             : 
    3922                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3923                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3924                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3925         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3926                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3927                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3928         [ #  # ]:           0 :     if (node->path.param_info)
    3929                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3930                 :             :     else
    3931                 :           0 :         outBitmapset(str, NULL);
    3932         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3933         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3934                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3935                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3936                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3937                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3938                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3939                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3940                 :           0 :     WRITE_NODE_FIELD(subpath);
    3941                 :           0 : }
    3942                 :             : 
    3943                 :             : static void
    3944                 :           0 : _outMemoizePath(StringInfo str, const MemoizePath *node)
    3945                 :             : {
    3946                 :           0 :     WRITE_NODE_TYPE("MEMOIZEPATH");
    3947                 :             : 
    3948                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3949                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3950                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3951         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3952                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3953                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3954         [ #  # ]:           0 :     if (node->path.param_info)
    3955                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3956                 :             :     else
    3957                 :           0 :         outBitmapset(str, NULL);
    3958         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3959         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3960                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3961                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3962                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3963                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3964                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3965                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    3966                 :           0 :     WRITE_NODE_FIELD(subpath);
    3967                 :           0 :     WRITE_NODE_FIELD(hash_operators);
    3968                 :           0 :     WRITE_NODE_FIELD(param_exprs);
    3969         [ #  # ]:           0 :     WRITE_BOOL_FIELD(singlerow);
    3970         [ #  # ]:           0 :     WRITE_BOOL_FIELD(binary_mode);
    3971                 :           0 :     WRITE_UINT_FIELD(est_entries);
    3972                 :           0 :     WRITE_FLOAT_FIELD(est_calls);
    3973                 :           0 :     WRITE_FLOAT_FIELD(est_unique_keys);
    3974                 :           0 :     WRITE_FLOAT_FIELD(est_hit_ratio);
    3975                 :           0 : }
    3976                 :             : 
    3977                 :             : static void
    3978                 :           0 : _outGatherPath(StringInfo str, const GatherPath *node)
    3979                 :             : {
    3980                 :           0 :     WRITE_NODE_TYPE("GATHERPATH");
    3981                 :             : 
    3982                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    3983                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    3984                 :           0 :     outBitmapset(str, node->path.parent->relids);
    3985         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    3986                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    3987                 :           0 :     appendStringInfoString(str, " :required_outer ");
    3988         [ #  # ]:           0 :     if (node->path.param_info)
    3989                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    3990                 :             :     else
    3991                 :           0 :         outBitmapset(str, NULL);
    3992         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    3993         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    3994                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    3995                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    3996                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    3997                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    3998                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    3999                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4000                 :           0 :     WRITE_NODE_FIELD(subpath);
    4001         [ #  # ]:           0 :     WRITE_BOOL_FIELD(single_copy);
    4002                 :           0 :     WRITE_INT_FIELD(num_workers);
    4003                 :           0 : }
    4004                 :             : 
    4005                 :             : static void
    4006                 :           0 : _outGatherMergePath(StringInfo str, const GatherMergePath *node)
    4007                 :             : {
    4008                 :           0 :     WRITE_NODE_TYPE("GATHERMERGEPATH");
    4009                 :             : 
    4010                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4011                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4012                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4013         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4014                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4015                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4016         [ #  # ]:           0 :     if (node->path.param_info)
    4017                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4018                 :             :     else
    4019                 :           0 :         outBitmapset(str, NULL);
    4020         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4021         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4022                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4023                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4024                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4025                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4026                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4027                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4028                 :           0 :     WRITE_NODE_FIELD(subpath);
    4029                 :           0 :     WRITE_INT_FIELD(num_workers);
    4030                 :           0 : }
    4031                 :             : 
    4032                 :             : static void
    4033                 :           0 : _outNestPath(StringInfo str, const NestPath *node)
    4034                 :             : {
    4035                 :           0 :     WRITE_NODE_TYPE("NESTPATH");
    4036                 :             : 
    4037                 :           0 :     WRITE_ENUM_FIELD(jpath.path.pathtype, NodeTag);
    4038                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4039                 :           0 :     outBitmapset(str, node->jpath.path.parent->relids);
    4040         [ #  # ]:           0 :     if (node->jpath.path.pathtarget != node->jpath.path.parent->reltarget)
    4041                 :           0 :         WRITE_NODE_FIELD(jpath.path.pathtarget);
    4042                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4043         [ #  # ]:           0 :     if (node->jpath.path.param_info)
    4044                 :           0 :         outBitmapset(str, node->jpath.path.param_info->ppi_req_outer);
    4045                 :             :     else
    4046                 :           0 :         outBitmapset(str, NULL);
    4047         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.path.parallel_aware);
    4048         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.path.parallel_safe);
    4049                 :           0 :     WRITE_INT_FIELD(jpath.path.parallel_workers);
    4050                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.rows);
    4051                 :           0 :     WRITE_INT_FIELD(jpath.path.disabled_nodes);
    4052                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.startup_cost);
    4053                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.total_cost);
    4054                 :           0 :     WRITE_NODE_FIELD(jpath.path.pathkeys);
    4055                 :           0 :     WRITE_ENUM_FIELD(jpath.jointype, JoinType);
    4056         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.inner_unique);
    4057                 :           0 :     WRITE_NODE_FIELD(jpath.outerjoinpath);
    4058                 :           0 :     WRITE_NODE_FIELD(jpath.innerjoinpath);
    4059                 :           0 :     WRITE_NODE_FIELD(jpath.joinrestrictinfo);
    4060                 :           0 : }
    4061                 :             : 
    4062                 :             : static void
    4063                 :           0 : _outMergePath(StringInfo str, const MergePath *node)
    4064                 :             : {
    4065                 :           0 :     WRITE_NODE_TYPE("MERGEPATH");
    4066                 :             : 
    4067                 :           0 :     WRITE_ENUM_FIELD(jpath.path.pathtype, NodeTag);
    4068                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4069                 :           0 :     outBitmapset(str, node->jpath.path.parent->relids);
    4070         [ #  # ]:           0 :     if (node->jpath.path.pathtarget != node->jpath.path.parent->reltarget)
    4071                 :           0 :         WRITE_NODE_FIELD(jpath.path.pathtarget);
    4072                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4073         [ #  # ]:           0 :     if (node->jpath.path.param_info)
    4074                 :           0 :         outBitmapset(str, node->jpath.path.param_info->ppi_req_outer);
    4075                 :             :     else
    4076                 :           0 :         outBitmapset(str, NULL);
    4077         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.path.parallel_aware);
    4078         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.path.parallel_safe);
    4079                 :           0 :     WRITE_INT_FIELD(jpath.path.parallel_workers);
    4080                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.rows);
    4081                 :           0 :     WRITE_INT_FIELD(jpath.path.disabled_nodes);
    4082                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.startup_cost);
    4083                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.total_cost);
    4084                 :           0 :     WRITE_NODE_FIELD(jpath.path.pathkeys);
    4085                 :           0 :     WRITE_ENUM_FIELD(jpath.jointype, JoinType);
    4086         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.inner_unique);
    4087                 :           0 :     WRITE_NODE_FIELD(jpath.outerjoinpath);
    4088                 :           0 :     WRITE_NODE_FIELD(jpath.innerjoinpath);
    4089                 :           0 :     WRITE_NODE_FIELD(jpath.joinrestrictinfo);
    4090                 :           0 :     WRITE_NODE_FIELD(path_mergeclauses);
    4091                 :           0 :     WRITE_NODE_FIELD(outersortkeys);
    4092                 :           0 :     WRITE_NODE_FIELD(innersortkeys);
    4093                 :           0 :     WRITE_INT_FIELD(outer_presorted_keys);
    4094         [ #  # ]:           0 :     WRITE_BOOL_FIELD(skip_mark_restore);
    4095         [ #  # ]:           0 :     WRITE_BOOL_FIELD(materialize_inner);
    4096                 :           0 : }
    4097                 :             : 
    4098                 :             : static void
    4099                 :           0 : _outHashPath(StringInfo str, const HashPath *node)
    4100                 :             : {
    4101                 :           0 :     WRITE_NODE_TYPE("HASHPATH");
    4102                 :             : 
    4103                 :           0 :     WRITE_ENUM_FIELD(jpath.path.pathtype, NodeTag);
    4104                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4105                 :           0 :     outBitmapset(str, node->jpath.path.parent->relids);
    4106         [ #  # ]:           0 :     if (node->jpath.path.pathtarget != node->jpath.path.parent->reltarget)
    4107                 :           0 :         WRITE_NODE_FIELD(jpath.path.pathtarget);
    4108                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4109         [ #  # ]:           0 :     if (node->jpath.path.param_info)
    4110                 :           0 :         outBitmapset(str, node->jpath.path.param_info->ppi_req_outer);
    4111                 :             :     else
    4112                 :           0 :         outBitmapset(str, NULL);
    4113         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.path.parallel_aware);
    4114         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.path.parallel_safe);
    4115                 :           0 :     WRITE_INT_FIELD(jpath.path.parallel_workers);
    4116                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.rows);
    4117                 :           0 :     WRITE_INT_FIELD(jpath.path.disabled_nodes);
    4118                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.startup_cost);
    4119                 :           0 :     WRITE_FLOAT_FIELD(jpath.path.total_cost);
    4120                 :           0 :     WRITE_NODE_FIELD(jpath.path.pathkeys);
    4121                 :           0 :     WRITE_ENUM_FIELD(jpath.jointype, JoinType);
    4122         [ #  # ]:           0 :     WRITE_BOOL_FIELD(jpath.inner_unique);
    4123                 :           0 :     WRITE_NODE_FIELD(jpath.outerjoinpath);
    4124                 :           0 :     WRITE_NODE_FIELD(jpath.innerjoinpath);
    4125                 :           0 :     WRITE_NODE_FIELD(jpath.joinrestrictinfo);
    4126                 :           0 :     WRITE_NODE_FIELD(path_hashclauses);
    4127                 :           0 :     WRITE_INT_FIELD(num_batches);
    4128                 :           0 :     WRITE_FLOAT_FIELD(inner_rows_total);
    4129                 :           0 : }
    4130                 :             : 
    4131                 :             : static void
    4132                 :           0 : _outProjectionPath(StringInfo str, const ProjectionPath *node)
    4133                 :             : {
    4134                 :           0 :     WRITE_NODE_TYPE("PROJECTIONPATH");
    4135                 :             : 
    4136                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4137                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4138                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4139         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4140                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4141                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4142         [ #  # ]:           0 :     if (node->path.param_info)
    4143                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4144                 :             :     else
    4145                 :           0 :         outBitmapset(str, NULL);
    4146         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4147         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4148                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4149                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4150                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4151                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4152                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4153                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4154                 :           0 :     WRITE_NODE_FIELD(subpath);
    4155         [ #  # ]:           0 :     WRITE_BOOL_FIELD(dummypp);
    4156                 :           0 : }
    4157                 :             : 
    4158                 :             : static void
    4159                 :           0 : _outProjectSetPath(StringInfo str, const ProjectSetPath *node)
    4160                 :             : {
    4161                 :           0 :     WRITE_NODE_TYPE("PROJECTSETPATH");
    4162                 :             : 
    4163                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4164                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4165                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4166         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4167                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4168                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4169         [ #  # ]:           0 :     if (node->path.param_info)
    4170                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4171                 :             :     else
    4172                 :           0 :         outBitmapset(str, NULL);
    4173         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4174         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4175                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4176                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4177                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4178                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4179                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4180                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4181                 :           0 :     WRITE_NODE_FIELD(subpath);
    4182                 :           0 : }
    4183                 :             : 
    4184                 :             : static void
    4185                 :           0 : _outSortPath(StringInfo str, const SortPath *node)
    4186                 :             : {
    4187                 :           0 :     WRITE_NODE_TYPE("SORTPATH");
    4188                 :             : 
    4189                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4190                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4191                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4192         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4193                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4194                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4195         [ #  # ]:           0 :     if (node->path.param_info)
    4196                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4197                 :             :     else
    4198                 :           0 :         outBitmapset(str, NULL);
    4199         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4200         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4201                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4202                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4203                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4204                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4205                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4206                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4207                 :           0 :     WRITE_NODE_FIELD(subpath);
    4208                 :           0 : }
    4209                 :             : 
    4210                 :             : static void
    4211                 :           0 : _outIncrementalSortPath(StringInfo str, const IncrementalSortPath *node)
    4212                 :             : {
    4213                 :           0 :     WRITE_NODE_TYPE("INCREMENTALSORTPATH");
    4214                 :             : 
    4215                 :           0 :     WRITE_ENUM_FIELD(spath.path.pathtype, NodeTag);
    4216                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4217                 :           0 :     outBitmapset(str, node->spath.path.parent->relids);
    4218         [ #  # ]:           0 :     if (node->spath.path.pathtarget != node->spath.path.parent->reltarget)
    4219                 :           0 :         WRITE_NODE_FIELD(spath.path.pathtarget);
    4220                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4221         [ #  # ]:           0 :     if (node->spath.path.param_info)
    4222                 :           0 :         outBitmapset(str, node->spath.path.param_info->ppi_req_outer);
    4223                 :             :     else
    4224                 :           0 :         outBitmapset(str, NULL);
    4225         [ #  # ]:           0 :     WRITE_BOOL_FIELD(spath.path.parallel_aware);
    4226         [ #  # ]:           0 :     WRITE_BOOL_FIELD(spath.path.parallel_safe);
    4227                 :           0 :     WRITE_INT_FIELD(spath.path.parallel_workers);
    4228                 :           0 :     WRITE_FLOAT_FIELD(spath.path.rows);
    4229                 :           0 :     WRITE_INT_FIELD(spath.path.disabled_nodes);
    4230                 :           0 :     WRITE_FLOAT_FIELD(spath.path.startup_cost);
    4231                 :           0 :     WRITE_FLOAT_FIELD(spath.path.total_cost);
    4232                 :           0 :     WRITE_NODE_FIELD(spath.path.pathkeys);
    4233                 :           0 :     WRITE_NODE_FIELD(spath.subpath);
    4234                 :           0 :     WRITE_INT_FIELD(nPresortedCols);
    4235                 :           0 :     WRITE_FLOAT_FIELD(numGroups);
    4236                 :           0 : }
    4237                 :             : 
    4238                 :             : static void
    4239                 :           0 : _outGroupPath(StringInfo str, const GroupPath *node)
    4240                 :             : {
    4241                 :           0 :     WRITE_NODE_TYPE("GROUPPATH");
    4242                 :             : 
    4243                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4244                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4245                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4246         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4247                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4248                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4249         [ #  # ]:           0 :     if (node->path.param_info)
    4250                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4251                 :             :     else
    4252                 :           0 :         outBitmapset(str, NULL);
    4253         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4254         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4255                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4256                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4257                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4258                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4259                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4260                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4261                 :           0 :     WRITE_NODE_FIELD(subpath);
    4262                 :           0 :     WRITE_NODE_FIELD(groupClause);
    4263                 :           0 :     WRITE_NODE_FIELD(qual);
    4264                 :           0 : }
    4265                 :             : 
    4266                 :             : static void
    4267                 :           0 : _outUniquePath(StringInfo str, const UniquePath *node)
    4268                 :             : {
    4269                 :           0 :     WRITE_NODE_TYPE("UNIQUEPATH");
    4270                 :             : 
    4271                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4272                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4273                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4274         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4275                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4276                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4277         [ #  # ]:           0 :     if (node->path.param_info)
    4278                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4279                 :             :     else
    4280                 :           0 :         outBitmapset(str, NULL);
    4281         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4282         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4283                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4284                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4285                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4286                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4287                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4288                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4289                 :           0 :     WRITE_NODE_FIELD(subpath);
    4290                 :           0 :     WRITE_INT_FIELD(numkeys);
    4291                 :           0 : }
    4292                 :             : 
    4293                 :             : static void
    4294                 :           0 : _outAggPath(StringInfo str, const AggPath *node)
    4295                 :             : {
    4296                 :           0 :     WRITE_NODE_TYPE("AGGPATH");
    4297                 :             : 
    4298                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4299                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4300                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4301         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4302                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4303                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4304         [ #  # ]:           0 :     if (node->path.param_info)
    4305                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4306                 :             :     else
    4307                 :           0 :         outBitmapset(str, NULL);
    4308         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4309         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4310                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4311                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4312                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4313                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4314                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4315                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4316                 :           0 :     WRITE_NODE_FIELD(subpath);
    4317                 :           0 :     WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
    4318                 :           0 :     WRITE_ENUM_FIELD(aggsplit, AggSplit);
    4319                 :           0 :     WRITE_FLOAT_FIELD(numGroups);
    4320                 :           0 :     WRITE_UINT64_FIELD(transitionSpace);
    4321                 :           0 :     WRITE_NODE_FIELD(groupClause);
    4322                 :           0 :     WRITE_NODE_FIELD(qual);
    4323                 :           0 : }
    4324                 :             : 
    4325                 :             : static void
    4326                 :           0 : _outGroupingSetData(StringInfo str, const GroupingSetData *node)
    4327                 :             : {
    4328                 :           0 :     WRITE_NODE_TYPE("GROUPINGSETDATA");
    4329                 :             : 
    4330                 :           0 :     WRITE_NODE_FIELD(set);
    4331                 :           0 :     WRITE_FLOAT_FIELD(numGroups);
    4332                 :           0 : }
    4333                 :             : 
    4334                 :             : static void
    4335                 :           0 : _outRollupData(StringInfo str, const RollupData *node)
    4336                 :             : {
    4337                 :           0 :     WRITE_NODE_TYPE("ROLLUPDATA");
    4338                 :             : 
    4339                 :           0 :     WRITE_NODE_FIELD(groupClause);
    4340                 :           0 :     WRITE_NODE_FIELD(gsets);
    4341                 :           0 :     WRITE_NODE_FIELD(gsets_data);
    4342                 :           0 :     WRITE_FLOAT_FIELD(numGroups);
    4343         [ #  # ]:           0 :     WRITE_BOOL_FIELD(hashable);
    4344         [ #  # ]:           0 :     WRITE_BOOL_FIELD(is_hashed);
    4345                 :           0 : }
    4346                 :             : 
    4347                 :             : static void
    4348                 :           0 : _outGroupingSetsPath(StringInfo str, const GroupingSetsPath *node)
    4349                 :             : {
    4350                 :           0 :     WRITE_NODE_TYPE("GROUPINGSETSPATH");
    4351                 :             : 
    4352                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4353                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4354                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4355         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4356                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4357                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4358         [ #  # ]:           0 :     if (node->path.param_info)
    4359                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4360                 :             :     else
    4361                 :           0 :         outBitmapset(str, NULL);
    4362         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4363         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4364                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4365                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4366                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4367                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4368                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4369                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4370                 :           0 :     WRITE_NODE_FIELD(subpath);
    4371                 :           0 :     WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
    4372                 :           0 :     WRITE_NODE_FIELD(rollups);
    4373                 :           0 :     WRITE_NODE_FIELD(qual);
    4374                 :           0 :     WRITE_UINT64_FIELD(transitionSpace);
    4375                 :           0 : }
    4376                 :             : 
    4377                 :             : static void
    4378                 :           0 : _outMinMaxAggPath(StringInfo str, const MinMaxAggPath *node)
    4379                 :             : {
    4380                 :           0 :     WRITE_NODE_TYPE("MINMAXAGGPATH");
    4381                 :             : 
    4382                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4383                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4384                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4385         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4386                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4387                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4388         [ #  # ]:           0 :     if (node->path.param_info)
    4389                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4390                 :             :     else
    4391                 :           0 :         outBitmapset(str, NULL);
    4392         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4393         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4394                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4395                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4396                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4397                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4398                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4399                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4400                 :           0 :     WRITE_NODE_FIELD(mmaggregates);
    4401                 :           0 :     WRITE_NODE_FIELD(quals);
    4402                 :           0 : }
    4403                 :             : 
    4404                 :             : static void
    4405                 :           0 : _outWindowAggPath(StringInfo str, const WindowAggPath *node)
    4406                 :             : {
    4407                 :           0 :     WRITE_NODE_TYPE("WINDOWAGGPATH");
    4408                 :             : 
    4409                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4410                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4411                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4412         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4413                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4414                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4415         [ #  # ]:           0 :     if (node->path.param_info)
    4416                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4417                 :             :     else
    4418                 :           0 :         outBitmapset(str, NULL);
    4419         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4420         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4421                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4422                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4423                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4424                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4425                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4426                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4427                 :           0 :     WRITE_NODE_FIELD(subpath);
    4428                 :           0 :     WRITE_NODE_FIELD(winclause);
    4429                 :           0 :     WRITE_NODE_FIELD(qual);
    4430                 :           0 :     WRITE_NODE_FIELD(runCondition);
    4431         [ #  # ]:           0 :     WRITE_BOOL_FIELD(topwindow);
    4432                 :           0 : }
    4433                 :             : 
    4434                 :             : static void
    4435                 :           0 : _outSetOpPath(StringInfo str, const SetOpPath *node)
    4436                 :             : {
    4437                 :           0 :     WRITE_NODE_TYPE("SETOPPATH");
    4438                 :             : 
    4439                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4440                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4441                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4442         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4443                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4444                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4445         [ #  # ]:           0 :     if (node->path.param_info)
    4446                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4447                 :             :     else
    4448                 :           0 :         outBitmapset(str, NULL);
    4449         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4450         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4451                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4452                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4453                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4454                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4455                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4456                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4457                 :           0 :     WRITE_NODE_FIELD(leftpath);
    4458                 :           0 :     WRITE_NODE_FIELD(rightpath);
    4459                 :           0 :     WRITE_ENUM_FIELD(cmd, SetOpCmd);
    4460                 :           0 :     WRITE_ENUM_FIELD(strategy, SetOpStrategy);
    4461                 :           0 :     WRITE_NODE_FIELD(groupList);
    4462                 :           0 :     WRITE_FLOAT_FIELD(numGroups);
    4463                 :           0 : }
    4464                 :             : 
    4465                 :             : static void
    4466                 :           0 : _outRecursiveUnionPath(StringInfo str, const RecursiveUnionPath *node)
    4467                 :             : {
    4468                 :           0 :     WRITE_NODE_TYPE("RECURSIVEUNIONPATH");
    4469                 :             : 
    4470                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4471                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4472                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4473         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4474                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4475                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4476         [ #  # ]:           0 :     if (node->path.param_info)
    4477                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4478                 :             :     else
    4479                 :           0 :         outBitmapset(str, NULL);
    4480         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4481         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4482                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4483                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4484                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4485                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4486                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4487                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4488                 :           0 :     WRITE_NODE_FIELD(leftpath);
    4489                 :           0 :     WRITE_NODE_FIELD(rightpath);
    4490                 :           0 :     WRITE_NODE_FIELD(distinctList);
    4491                 :           0 :     WRITE_INT_FIELD(wtParam);
    4492                 :           0 :     WRITE_FLOAT_FIELD(numGroups);
    4493                 :           0 : }
    4494                 :             : 
    4495                 :             : static void
    4496                 :           0 : _outLockRowsPath(StringInfo str, const LockRowsPath *node)
    4497                 :             : {
    4498                 :           0 :     WRITE_NODE_TYPE("LOCKROWSPATH");
    4499                 :             : 
    4500                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4501                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4502                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4503         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4504                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4505                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4506         [ #  # ]:           0 :     if (node->path.param_info)
    4507                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4508                 :             :     else
    4509                 :           0 :         outBitmapset(str, NULL);
    4510         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4511         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4512                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4513                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4514                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4515                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4516                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4517                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4518                 :           0 :     WRITE_NODE_FIELD(subpath);
    4519                 :           0 :     WRITE_NODE_FIELD(rowMarks);
    4520                 :           0 :     WRITE_INT_FIELD(epqParam);
    4521                 :           0 : }
    4522                 :             : 
    4523                 :             : static void
    4524                 :           0 : _outModifyTablePath(StringInfo str, const ModifyTablePath *node)
    4525                 :             : {
    4526                 :           0 :     WRITE_NODE_TYPE("MODIFYTABLEPATH");
    4527                 :             : 
    4528                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4529                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4530                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4531         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4532                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4533                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4534         [ #  # ]:           0 :     if (node->path.param_info)
    4535                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4536                 :             :     else
    4537                 :           0 :         outBitmapset(str, NULL);
    4538         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4539         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4540                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4541                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4542                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4543                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4544                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4545                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4546                 :           0 :     WRITE_NODE_FIELD(subpath);
    4547                 :           0 :     WRITE_ENUM_FIELD(operation, CmdType);
    4548         [ #  # ]:           0 :     WRITE_BOOL_FIELD(canSetTag);
    4549                 :           0 :     WRITE_UINT_FIELD(nominalRelation);
    4550                 :           0 :     WRITE_UINT_FIELD(rootRelation);
    4551                 :           0 :     WRITE_NODE_FIELD(resultRelations);
    4552                 :           0 :     WRITE_NODE_FIELD(updateColnosLists);
    4553                 :           0 :     WRITE_NODE_FIELD(withCheckOptionLists);
    4554                 :           0 :     WRITE_NODE_FIELD(returningLists);
    4555                 :           0 :     WRITE_NODE_FIELD(rowMarks);
    4556                 :           0 :     WRITE_NODE_FIELD(onconflict);
    4557                 :           0 :     WRITE_INT_FIELD(epqParam);
    4558                 :           0 :     WRITE_NODE_FIELD(mergeActionLists);
    4559                 :           0 :     WRITE_NODE_FIELD(mergeJoinConditions);
    4560                 :           0 : }
    4561                 :             : 
    4562                 :             : static void
    4563                 :           0 : _outLimitPath(StringInfo str, const LimitPath *node)
    4564                 :             : {
    4565                 :           0 :     WRITE_NODE_TYPE("LIMITPATH");
    4566                 :             : 
    4567                 :           0 :     WRITE_ENUM_FIELD(path.pathtype, NodeTag);
    4568                 :           0 :     appendStringInfoString(str, " :parent_relids ");
    4569                 :           0 :     outBitmapset(str, node->path.parent->relids);
    4570         [ #  # ]:           0 :     if (node->path.pathtarget != node->path.parent->reltarget)
    4571                 :           0 :         WRITE_NODE_FIELD(path.pathtarget);
    4572                 :           0 :     appendStringInfoString(str, " :required_outer ");
    4573         [ #  # ]:           0 :     if (node->path.param_info)
    4574                 :           0 :         outBitmapset(str, node->path.param_info->ppi_req_outer);
    4575                 :             :     else
    4576                 :           0 :         outBitmapset(str, NULL);
    4577         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_aware);
    4578         [ #  # ]:           0 :     WRITE_BOOL_FIELD(path.parallel_safe);
    4579                 :           0 :     WRITE_INT_FIELD(path.parallel_workers);
    4580                 :           0 :     WRITE_FLOAT_FIELD(path.rows);
    4581                 :           0 :     WRITE_INT_FIELD(path.disabled_nodes);
    4582                 :           0 :     WRITE_FLOAT_FIELD(path.startup_cost);
    4583                 :           0 :     WRITE_FLOAT_FIELD(path.total_cost);
    4584                 :           0 :     WRITE_NODE_FIELD(path.pathkeys);
    4585                 :           0 :     WRITE_NODE_FIELD(subpath);
    4586                 :           0 :     WRITE_NODE_FIELD(limitOffset);
    4587                 :           0 :     WRITE_NODE_FIELD(limitCount);
    4588                 :           0 :     WRITE_ENUM_FIELD(limitOption, LimitOption);
    4589                 :           0 : }
    4590                 :             : 
    4591                 :             : static void
    4592                 :           0 : _outRestrictInfo(StringInfo str, const RestrictInfo *node)
    4593                 :             : {
    4594                 :           0 :     WRITE_NODE_TYPE("RESTRICTINFO");
    4595                 :             : 
    4596                 :           0 :     WRITE_NODE_FIELD(clause);
    4597         [ #  # ]:           0 :     WRITE_BOOL_FIELD(is_pushed_down);
    4598         [ #  # ]:           0 :     WRITE_BOOL_FIELD(can_join);
    4599         [ #  # ]:           0 :     WRITE_BOOL_FIELD(pseudoconstant);
    4600         [ #  # ]:           0 :     WRITE_BOOL_FIELD(has_clone);
    4601         [ #  # ]:           0 :     WRITE_BOOL_FIELD(is_clone);
    4602         [ #  # ]:           0 :     WRITE_BOOL_FIELD(leakproof);
    4603                 :           0 :     WRITE_ENUM_FIELD(has_volatile, VolatileFunctionStatus);
    4604                 :           0 :     WRITE_UINT_FIELD(security_level);
    4605                 :           0 :     WRITE_INT_FIELD(num_base_rels);
    4606                 :           0 :     WRITE_BITMAPSET_FIELD(clause_relids);
    4607                 :           0 :     WRITE_BITMAPSET_FIELD(required_relids);
    4608                 :           0 :     WRITE_BITMAPSET_FIELD(incompatible_relids);
    4609                 :           0 :     WRITE_BITMAPSET_FIELD(outer_relids);
    4610                 :           0 :     WRITE_BITMAPSET_FIELD(left_relids);
    4611                 :           0 :     WRITE_BITMAPSET_FIELD(right_relids);
    4612                 :           0 :     WRITE_NODE_FIELD(orclause);
    4613                 :           0 :     WRITE_INT_FIELD(rinfo_serial);
    4614                 :           0 :     WRITE_FLOAT_FIELD(eval_cost.startup);
    4615                 :           0 :     WRITE_FLOAT_FIELD(eval_cost.per_tuple);
    4616                 :           0 :     WRITE_FLOAT_FIELD(norm_selec);
    4617                 :           0 :     WRITE_FLOAT_FIELD(outer_selec);
    4618                 :           0 :     WRITE_NODE_FIELD(mergeopfamilies);
    4619                 :           0 :     WRITE_NODE_FIELD(left_em);
    4620                 :           0 :     WRITE_NODE_FIELD(right_em);
    4621         [ #  # ]:           0 :     WRITE_BOOL_FIELD(outer_is_left);
    4622                 :           0 :     WRITE_OID_FIELD(hashjoinoperator);
    4623                 :           0 :     WRITE_FLOAT_FIELD(left_bucketsize);
    4624                 :           0 :     WRITE_FLOAT_FIELD(right_bucketsize);
    4625                 :           0 :     WRITE_FLOAT_FIELD(left_mcvfreq);
    4626                 :           0 :     WRITE_FLOAT_FIELD(right_mcvfreq);
    4627                 :           0 :     WRITE_OID_FIELD(left_hasheqoperator);
    4628                 :           0 :     WRITE_OID_FIELD(right_hasheqoperator);
    4629                 :           0 : }
    4630                 :             : 
    4631                 :             : static void
    4632                 :           0 : _outPlaceHolderVar(StringInfo str, const PlaceHolderVar *node)
    4633                 :             : {
    4634                 :           0 :     WRITE_NODE_TYPE("PLACEHOLDERVAR");
    4635                 :             : 
    4636                 :           0 :     WRITE_NODE_FIELD(phexpr);
    4637                 :           0 :     WRITE_BITMAPSET_FIELD(phrels);
    4638                 :           0 :     WRITE_BITMAPSET_FIELD(phnullingrels);
    4639                 :           0 :     WRITE_UINT_FIELD(phid);
    4640                 :           0 :     WRITE_UINT_FIELD(phlevelsup);
    4641                 :           0 : }
    4642                 :             : 
    4643                 :             : static void
    4644                 :           0 : _outSpecialJoinInfo(StringInfo str, const SpecialJoinInfo *node)
    4645                 :             : {
    4646                 :           0 :     WRITE_NODE_TYPE("SPECIALJOININFO");
    4647                 :             : 
    4648                 :           0 :     WRITE_BITMAPSET_FIELD(min_lefthand);
    4649                 :           0 :     WRITE_BITMAPSET_FIELD(min_righthand);
    4650                 :           0 :     WRITE_BITMAPSET_FIELD(syn_lefthand);
    4651                 :           0 :     WRITE_BITMAPSET_FIELD(syn_righthand);
    4652                 :           0 :     WRITE_ENUM_FIELD(jointype, JoinType);
    4653                 :           0 :     WRITE_UINT_FIELD(ojrelid);
    4654                 :           0 :     WRITE_BITMAPSET_FIELD(commute_above_l);
    4655                 :           0 :     WRITE_BITMAPSET_FIELD(commute_above_r);
    4656                 :           0 :     WRITE_BITMAPSET_FIELD(commute_below_l);
    4657                 :           0 :     WRITE_BITMAPSET_FIELD(commute_below_r);
    4658         [ #  # ]:           0 :     WRITE_BOOL_FIELD(lhs_strict);
    4659         [ #  # ]:           0 :     WRITE_BOOL_FIELD(semi_can_btree);
    4660         [ #  # ]:           0 :     WRITE_BOOL_FIELD(semi_can_hash);
    4661                 :           0 :     WRITE_NODE_FIELD(semi_operators);
    4662                 :           0 :     WRITE_NODE_FIELD(semi_rhs_exprs);
    4663                 :           0 : }
    4664                 :             : 
    4665                 :             : static void
    4666                 :           0 : _outOuterJoinClauseInfo(StringInfo str, const OuterJoinClauseInfo *node)
    4667                 :             : {
    4668                 :           0 :     WRITE_NODE_TYPE("OUTERJOINCLAUSEINFO");
    4669                 :             : 
    4670                 :           0 :     WRITE_NODE_FIELD(rinfo);
    4671                 :           0 :     WRITE_NODE_FIELD(sjinfo);
    4672                 :           0 : }
    4673                 :             : 
    4674                 :             : static void
    4675                 :       38412 : _outAppendRelInfo(StringInfo str, const AppendRelInfo *node)
    4676                 :             : {
    4677                 :       38412 :     WRITE_NODE_TYPE("APPENDRELINFO");
    4678                 :             : 
    4679                 :       38412 :     WRITE_UINT_FIELD(parent_relid);
    4680                 :       38412 :     WRITE_UINT_FIELD(child_relid);
    4681                 :       38412 :     WRITE_OID_FIELD(parent_reltype);
    4682                 :       38412 :     WRITE_OID_FIELD(child_reltype);
    4683                 :       38412 :     WRITE_NODE_FIELD(translated_vars);
    4684                 :       38412 :     WRITE_INT_FIELD(num_child_cols);
    4685                 :       38412 :     WRITE_ATTRNUMBER_ARRAY(parent_colnos, node->num_child_cols);
    4686                 :       38412 :     WRITE_OID_FIELD(parent_reloid);
    4687                 :       38412 : }
    4688                 :             : 
    4689                 :             : static void
    4690                 :           0 : _outRowIdentityVarInfo(StringInfo str, const RowIdentityVarInfo *node)
    4691                 :             : {
    4692                 :           0 :     WRITE_NODE_TYPE("ROWIDENTITYVARINFO");
    4693                 :             : 
    4694                 :           0 :     WRITE_NODE_FIELD(rowidvar);
    4695                 :           0 :     WRITE_INT_FIELD(rowidwidth);
    4696                 :           0 :     WRITE_STRING_FIELD(rowidname);
    4697                 :           0 :     WRITE_BITMAPSET_FIELD(rowidrels);
    4698                 :           0 : }
    4699                 :             : 
    4700                 :             : static void
    4701                 :           0 : _outPlaceHolderInfo(StringInfo str, const PlaceHolderInfo *node)
    4702                 :             : {
    4703                 :           0 :     WRITE_NODE_TYPE("PLACEHOLDERINFO");
    4704                 :             : 
    4705                 :           0 :     WRITE_UINT_FIELD(phid);
    4706                 :           0 :     WRITE_NODE_FIELD(ph_var);
    4707                 :           0 :     WRITE_BITMAPSET_FIELD(ph_eval_at);
    4708                 :           0 :     WRITE_BITMAPSET_FIELD(ph_lateral);
    4709                 :           0 :     WRITE_BITMAPSET_FIELD(ph_needed);
    4710                 :           0 :     WRITE_INT_FIELD(ph_width);
    4711                 :           0 : }
    4712                 :             : 
    4713                 :             : static void
    4714                 :           0 : _outMinMaxAggInfo(StringInfo str, const MinMaxAggInfo *node)
    4715                 :             : {
    4716                 :           0 :     WRITE_NODE_TYPE("MINMAXAGGINFO");
    4717                 :             : 
    4718                 :           0 :     WRITE_OID_FIELD(aggfnoid);
    4719                 :           0 :     WRITE_OID_FIELD(aggsortop);
    4720                 :           0 :     WRITE_NODE_FIELD(target);
    4721                 :           0 :     WRITE_NODE_FIELD(path);
    4722                 :           0 :     WRITE_FLOAT_FIELD(pathcost);
    4723                 :           0 :     WRITE_NODE_FIELD(param);
    4724                 :           0 : }
    4725                 :             : 
    4726                 :             : static void
    4727                 :           0 : _outAggClauseInfo(StringInfo str, const AggClauseInfo *node)
    4728                 :             : {
    4729                 :           0 :     WRITE_NODE_TYPE("AGGCLAUSEINFO");
    4730                 :             : 
    4731                 :           0 :     WRITE_NODE_FIELD(aggref);
    4732                 :           0 :     WRITE_BITMAPSET_FIELD(agg_eval_at);
    4733                 :           0 : }
    4734                 :             : 
    4735                 :             : static void
    4736                 :           0 : _outGroupingExprInfo(StringInfo str, const GroupingExprInfo *node)
    4737                 :             : {
    4738                 :           0 :     WRITE_NODE_TYPE("GROUPINGEXPRINFO");
    4739                 :             : 
    4740                 :           0 :     WRITE_NODE_FIELD(expr);
    4741                 :           0 :     WRITE_UINT_FIELD(sortgroupref);
    4742                 :           0 :     WRITE_NODE_FIELD(ec);
    4743                 :           0 : }
    4744                 :             : 
    4745                 :             : static void
    4746                 :           0 : _outPlannerParamItem(StringInfo str, const PlannerParamItem *node)
    4747                 :             : {
    4748                 :           0 :     WRITE_NODE_TYPE("PLANNERPARAMITEM");
    4749                 :             : 
    4750                 :           0 :     WRITE_NODE_FIELD(item);
    4751                 :           0 :     WRITE_INT_FIELD(paramId);
    4752                 :           0 : }
    4753                 :             : 
    4754                 :             : static void
    4755                 :           0 : _outAggInfo(StringInfo str, const AggInfo *node)
    4756                 :             : {
    4757                 :           0 :     WRITE_NODE_TYPE("AGGINFO");
    4758                 :             : 
    4759                 :           0 :     WRITE_NODE_FIELD(aggrefs);
    4760                 :           0 :     WRITE_INT_FIELD(transno);
    4761         [ #  # ]:           0 :     WRITE_BOOL_FIELD(shareable);
    4762                 :           0 :     WRITE_OID_FIELD(finalfn_oid);
    4763                 :           0 : }
    4764                 :             : 
    4765                 :             : static void
    4766                 :           0 : _outAggTransInfo(StringInfo str, const AggTransInfo *node)
    4767                 :             : {
    4768                 :           0 :     WRITE_NODE_TYPE("AGGTRANSINFO");
    4769                 :             : 
    4770                 :           0 :     WRITE_NODE_FIELD(args);
    4771                 :           0 :     WRITE_NODE_FIELD(aggfilter);
    4772                 :           0 :     WRITE_OID_FIELD(transfn_oid);
    4773                 :           0 :     WRITE_OID_FIELD(serialfn_oid);
    4774                 :           0 :     WRITE_OID_FIELD(deserialfn_oid);
    4775                 :           0 :     WRITE_OID_FIELD(combinefn_oid);
    4776                 :           0 :     WRITE_OID_FIELD(aggtranstype);
    4777                 :           0 :     WRITE_INT_FIELD(aggtranstypmod);
    4778                 :           0 :     WRITE_INT_FIELD(transtypeLen);
    4779         [ #  # ]:           0 :     WRITE_BOOL_FIELD(transtypeByVal);
    4780                 :           0 :     WRITE_INT_FIELD(aggtransspace);
    4781         [ #  # ]:           0 :     WRITE_BOOL_FIELD(initValueIsNull);
    4782                 :           0 : }
    4783                 :             : 
    4784                 :             : static void
    4785                 :           0 : _outUniqueRelInfo(StringInfo str, const UniqueRelInfo *node)
    4786                 :             : {
    4787                 :           0 :     WRITE_NODE_TYPE("UNIQUERELINFO");
    4788                 :             : 
    4789                 :           0 :     WRITE_BITMAPSET_FIELD(outerrelids);
    4790         [ #  # ]:           0 :     WRITE_BOOL_FIELD(self_join);
    4791                 :           0 :     WRITE_NODE_FIELD(extra_clauses);
    4792                 :           0 : }
    4793                 :             : 
    4794                 :             : static void
    4795                 :      286407 : _outPlannedStmt(StringInfo str, const PlannedStmt *node)
    4796                 :             : {
    4797                 :      286407 :     WRITE_NODE_TYPE("PLANNEDSTMT");
    4798                 :             : 
    4799                 :      286407 :     WRITE_ENUM_FIELD(commandType, CmdType);
    4800                 :      286407 :     WRITE_INT64_FIELD(queryId);
    4801                 :      286407 :     WRITE_INT64_FIELD(planId);
    4802                 :      286407 :     WRITE_ENUM_FIELD(planOrigin, PlannedStmtOrigin);
    4803         [ +  + ]:      286407 :     WRITE_BOOL_FIELD(hasReturning);
    4804         [ +  + ]:      286407 :     WRITE_BOOL_FIELD(hasModifyingCTE);
    4805         [ +  + ]:      286407 :     WRITE_BOOL_FIELD(canSetTag);
    4806         [ +  + ]:      286407 :     WRITE_BOOL_FIELD(transientPlan);
    4807         [ +  + ]:      286407 :     WRITE_BOOL_FIELD(dependsOnRole);
    4808         [ +  + ]:      286407 :     WRITE_BOOL_FIELD(parallelModeNeeded);
    4809                 :      286407 :     WRITE_INT_FIELD(jitFlags);
    4810                 :      286407 :     WRITE_NODE_FIELD(planTree);
    4811                 :      286407 :     WRITE_NODE_FIELD(partPruneInfos);
    4812                 :      286407 :     WRITE_NODE_FIELD(rtable);
    4813                 :      286407 :     WRITE_BITMAPSET_FIELD(unprunableRelids);
    4814                 :      286407 :     WRITE_NODE_FIELD(permInfos);
    4815                 :      286407 :     WRITE_BITMAPSET_FIELD(resultRelationRelids);
    4816                 :      286407 :     WRITE_NODE_FIELD(appendRelations);
    4817                 :      286407 :     WRITE_NODE_FIELD(subplans);
    4818                 :      286407 :     WRITE_NODE_FIELD(subrtinfos);
    4819                 :      286407 :     WRITE_BITMAPSET_FIELD(rewindPlanIDs);
    4820                 :      286407 :     WRITE_NODE_FIELD(rowMarks);
    4821                 :      286407 :     WRITE_BITMAPSET_FIELD(rowMarkRelids);
    4822                 :      286407 :     WRITE_NODE_FIELD(relationOids);
    4823                 :      286407 :     WRITE_NODE_FIELD(invalItems);
    4824                 :      286407 :     WRITE_NODE_FIELD(paramExecTypes);
    4825                 :      286407 :     WRITE_NODE_FIELD(utilityStmt);
    4826                 :      286407 :     WRITE_NODE_FIELD(elidedNodes);
    4827                 :      286407 :     WRITE_NODE_FIELD(extension_state);
    4828         [ +  + ]:      286407 :     WRITE_LOCATION_FIELD(stmt_location);
    4829         [ +  + ]:      286407 :     WRITE_LOCATION_FIELD(stmt_len);
    4830                 :      286407 : }
    4831                 :             : 
    4832                 :             : static void
    4833                 :      135012 : _outResult(StringInfo str, const Result *node)
    4834                 :             : {
    4835                 :      135012 :     WRITE_NODE_TYPE("RESULT");
    4836                 :             : 
    4837                 :      135012 :     WRITE_INT_FIELD(plan.disabled_nodes);
    4838                 :      135012 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    4839                 :      135012 :     WRITE_FLOAT_FIELD(plan.total_cost);
    4840                 :      135012 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    4841                 :      135012 :     WRITE_INT_FIELD(plan.plan_width);
    4842         [ -  + ]:      135012 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    4843         [ +  + ]:      135012 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    4844         [ -  + ]:      135012 :     WRITE_BOOL_FIELD(plan.async_capable);
    4845                 :      135012 :     WRITE_INT_FIELD(plan.plan_node_id);
    4846                 :      135012 :     WRITE_NODE_FIELD(plan.targetlist);
    4847                 :      135012 :     WRITE_NODE_FIELD(plan.qual);
    4848                 :      135012 :     WRITE_NODE_FIELD(plan.lefttree);
    4849                 :      135012 :     WRITE_NODE_FIELD(plan.righttree);
    4850                 :      135012 :     WRITE_NODE_FIELD(plan.initPlan);
    4851                 :      135012 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    4852                 :      135012 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    4853                 :      135012 :     WRITE_ENUM_FIELD(result_type, ResultType);
    4854                 :      135012 :     WRITE_NODE_FIELD(resconstantqual);
    4855                 :      135012 :     WRITE_BITMAPSET_FIELD(relids);
    4856                 :      135012 : }
    4857                 :             : 
    4858                 :             : static void
    4859                 :        8425 : _outProjectSet(StringInfo str, const ProjectSet *node)
    4860                 :             : {
    4861                 :        8425 :     WRITE_NODE_TYPE("PROJECTSET");
    4862                 :             : 
    4863                 :        8425 :     WRITE_INT_FIELD(plan.disabled_nodes);
    4864                 :        8425 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    4865                 :        8425 :     WRITE_FLOAT_FIELD(plan.total_cost);
    4866                 :        8425 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    4867                 :        8425 :     WRITE_INT_FIELD(plan.plan_width);
    4868         [ -  + ]:        8425 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    4869         [ +  + ]:        8425 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    4870         [ -  + ]:        8425 :     WRITE_BOOL_FIELD(plan.async_capable);
    4871                 :        8425 :     WRITE_INT_FIELD(plan.plan_node_id);
    4872                 :        8425 :     WRITE_NODE_FIELD(plan.targetlist);
    4873                 :        8425 :     WRITE_NODE_FIELD(plan.qual);
    4874                 :        8425 :     WRITE_NODE_FIELD(plan.lefttree);
    4875                 :        8425 :     WRITE_NODE_FIELD(plan.righttree);
    4876                 :        8425 :     WRITE_NODE_FIELD(plan.initPlan);
    4877                 :        8425 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    4878                 :        8425 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    4879                 :        8425 : }
    4880                 :             : 
    4881                 :             : static void
    4882                 :       56714 : _outModifyTable(StringInfo str, const ModifyTable *node)
    4883                 :             : {
    4884                 :       56714 :     WRITE_NODE_TYPE("MODIFYTABLE");
    4885                 :             : 
    4886                 :       56714 :     WRITE_INT_FIELD(plan.disabled_nodes);
    4887                 :       56714 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    4888                 :       56714 :     WRITE_FLOAT_FIELD(plan.total_cost);
    4889                 :       56714 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    4890                 :       56714 :     WRITE_INT_FIELD(plan.plan_width);
    4891         [ -  + ]:       56714 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    4892         [ -  + ]:       56714 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    4893         [ -  + ]:       56714 :     WRITE_BOOL_FIELD(plan.async_capable);
    4894                 :       56714 :     WRITE_INT_FIELD(plan.plan_node_id);
    4895                 :       56714 :     WRITE_NODE_FIELD(plan.targetlist);
    4896                 :       56714 :     WRITE_NODE_FIELD(plan.qual);
    4897                 :       56714 :     WRITE_NODE_FIELD(plan.lefttree);
    4898                 :       56714 :     WRITE_NODE_FIELD(plan.righttree);
    4899                 :       56714 :     WRITE_NODE_FIELD(plan.initPlan);
    4900                 :       56714 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    4901                 :       56714 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    4902                 :       56714 :     WRITE_ENUM_FIELD(operation, CmdType);
    4903         [ +  + ]:       56714 :     WRITE_BOOL_FIELD(canSetTag);
    4904                 :       56714 :     WRITE_UINT_FIELD(nominalRelation);
    4905                 :       56714 :     WRITE_UINT_FIELD(rootRelation);
    4906                 :       56714 :     WRITE_NODE_FIELD(resultRelations);
    4907                 :       56714 :     WRITE_NODE_FIELD(updateColnosLists);
    4908                 :       56714 :     WRITE_NODE_FIELD(withCheckOptionLists);
    4909                 :       56714 :     WRITE_STRING_FIELD(returningOldAlias);
    4910                 :       56714 :     WRITE_STRING_FIELD(returningNewAlias);
    4911                 :       56714 :     WRITE_NODE_FIELD(returningLists);
    4912                 :       56714 :     WRITE_NODE_FIELD(fdwPrivLists);
    4913                 :       56714 :     WRITE_BITMAPSET_FIELD(fdwDirectModifyPlans);
    4914                 :       56714 :     WRITE_NODE_FIELD(rowMarks);
    4915                 :       56714 :     WRITE_INT_FIELD(epqParam);
    4916                 :       56714 :     WRITE_ENUM_FIELD(onConflictAction, OnConflictAction);
    4917                 :       56714 :     WRITE_NODE_FIELD(arbiterIndexes);
    4918                 :       56714 :     WRITE_ENUM_FIELD(onConflictLockStrength, LockClauseStrength);
    4919                 :       56714 :     WRITE_NODE_FIELD(onConflictSet);
    4920                 :       56714 :     WRITE_NODE_FIELD(onConflictCols);
    4921                 :       56714 :     WRITE_NODE_FIELD(onConflictWhere);
    4922                 :       56714 :     WRITE_UINT_FIELD(exclRelRTI);
    4923                 :       56714 :     WRITE_NODE_FIELD(exclRelTlist);
    4924                 :       56714 :     WRITE_NODE_FIELD(mergeActionLists);
    4925                 :       56714 :     WRITE_NODE_FIELD(mergeJoinConditions);
    4926                 :       56714 : }
    4927                 :             : 
    4928                 :             : static void
    4929                 :       12022 : _outAppend(StringInfo str, const Append *node)
    4930                 :             : {
    4931                 :       12022 :     WRITE_NODE_TYPE("APPEND");
    4932                 :             : 
    4933                 :       12022 :     WRITE_INT_FIELD(plan.disabled_nodes);
    4934                 :       12022 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    4935                 :       12022 :     WRITE_FLOAT_FIELD(plan.total_cost);
    4936                 :       12022 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    4937                 :       12022 :     WRITE_INT_FIELD(plan.plan_width);
    4938         [ +  + ]:       12022 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    4939         [ +  + ]:       12022 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    4940         [ -  + ]:       12022 :     WRITE_BOOL_FIELD(plan.async_capable);
    4941                 :       12022 :     WRITE_INT_FIELD(plan.plan_node_id);
    4942                 :       12022 :     WRITE_NODE_FIELD(plan.targetlist);
    4943                 :       12022 :     WRITE_NODE_FIELD(plan.qual);
    4944                 :       12022 :     WRITE_NODE_FIELD(plan.lefttree);
    4945                 :       12022 :     WRITE_NODE_FIELD(plan.righttree);
    4946                 :       12022 :     WRITE_NODE_FIELD(plan.initPlan);
    4947                 :       12022 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    4948                 :       12022 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    4949                 :       12022 :     WRITE_BITMAPSET_FIELD(apprelids);
    4950                 :       12022 :     WRITE_NODE_FIELD(child_append_relid_sets);
    4951                 :       12022 :     WRITE_NODE_FIELD(appendplans);
    4952                 :       12022 :     WRITE_INT_FIELD(nasyncplans);
    4953                 :       12022 :     WRITE_INT_FIELD(first_partial_plan);
    4954                 :       12022 :     WRITE_INT_FIELD(part_prune_index);
    4955                 :       12022 : }
    4956                 :             : 
    4957                 :             : static void
    4958                 :         370 : _outMergeAppend(StringInfo str, const MergeAppend *node)
    4959                 :             : {
    4960                 :         370 :     WRITE_NODE_TYPE("MERGEAPPEND");
    4961                 :             : 
    4962                 :         370 :     WRITE_INT_FIELD(plan.disabled_nodes);
    4963                 :         370 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    4964                 :         370 :     WRITE_FLOAT_FIELD(plan.total_cost);
    4965                 :         370 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    4966                 :         370 :     WRITE_INT_FIELD(plan.plan_width);
    4967         [ -  + ]:         370 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    4968         [ +  + ]:         370 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    4969         [ -  + ]:         370 :     WRITE_BOOL_FIELD(plan.async_capable);
    4970                 :         370 :     WRITE_INT_FIELD(plan.plan_node_id);
    4971                 :         370 :     WRITE_NODE_FIELD(plan.targetlist);
    4972                 :         370 :     WRITE_NODE_FIELD(plan.qual);
    4973                 :         370 :     WRITE_NODE_FIELD(plan.lefttree);
    4974                 :         370 :     WRITE_NODE_FIELD(plan.righttree);
    4975                 :         370 :     WRITE_NODE_FIELD(plan.initPlan);
    4976                 :         370 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    4977                 :         370 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    4978                 :         370 :     WRITE_BITMAPSET_FIELD(apprelids);
    4979                 :         370 :     WRITE_NODE_FIELD(child_append_relid_sets);
    4980                 :         370 :     WRITE_NODE_FIELD(mergeplans);
    4981                 :         370 :     WRITE_INT_FIELD(numCols);
    4982                 :         370 :     WRITE_ATTRNUMBER_ARRAY(sortColIdx, node->numCols);
    4983                 :         370 :     WRITE_OID_ARRAY(sortOperators, node->numCols);
    4984                 :         370 :     WRITE_OID_ARRAY(collations, node->numCols);
    4985                 :         370 :     WRITE_BOOL_ARRAY(nullsFirst, node->numCols);
    4986                 :         370 :     WRITE_INT_FIELD(part_prune_index);
    4987                 :         370 : }
    4988                 :             : 
    4989                 :             : static void
    4990                 :         620 : _outRecursiveUnion(StringInfo str, const RecursiveUnion *node)
    4991                 :             : {
    4992                 :         620 :     WRITE_NODE_TYPE("RECURSIVEUNION");
    4993                 :             : 
    4994                 :         620 :     WRITE_INT_FIELD(plan.disabled_nodes);
    4995                 :         620 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    4996                 :         620 :     WRITE_FLOAT_FIELD(plan.total_cost);
    4997                 :         620 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    4998                 :         620 :     WRITE_INT_FIELD(plan.plan_width);
    4999         [ -  + ]:         620 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5000         [ -  + ]:         620 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5001         [ -  + ]:         620 :     WRITE_BOOL_FIELD(plan.async_capable);
    5002                 :         620 :     WRITE_INT_FIELD(plan.plan_node_id);
    5003                 :         620 :     WRITE_NODE_FIELD(plan.targetlist);
    5004                 :         620 :     WRITE_NODE_FIELD(plan.qual);
    5005                 :         620 :     WRITE_NODE_FIELD(plan.lefttree);
    5006                 :         620 :     WRITE_NODE_FIELD(plan.righttree);
    5007                 :         620 :     WRITE_NODE_FIELD(plan.initPlan);
    5008                 :         620 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5009                 :         620 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5010                 :         620 :     WRITE_INT_FIELD(wtParam);
    5011                 :         620 :     WRITE_INT_FIELD(numCols);
    5012                 :         620 :     WRITE_ATTRNUMBER_ARRAY(dupColIdx, node->numCols);
    5013                 :         620 :     WRITE_OID_ARRAY(dupOperators, node->numCols);
    5014                 :         620 :     WRITE_OID_ARRAY(dupCollations, node->numCols);
    5015                 :         620 :     WRITE_FLOAT_FIELD(numGroups);
    5016                 :         620 : }
    5017                 :             : 
    5018                 :             : static void
    5019                 :         150 : _outBitmapAnd(StringInfo str, const BitmapAnd *node)
    5020                 :             : {
    5021                 :         150 :     WRITE_NODE_TYPE("BITMAPAND");
    5022                 :             : 
    5023                 :         150 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5024                 :         150 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5025                 :         150 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5026                 :         150 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5027                 :         150 :     WRITE_INT_FIELD(plan.plan_width);
    5028         [ -  + ]:         150 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5029         [ +  + ]:         150 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5030         [ -  + ]:         150 :     WRITE_BOOL_FIELD(plan.async_capable);
    5031                 :         150 :     WRITE_INT_FIELD(plan.plan_node_id);
    5032                 :         150 :     WRITE_NODE_FIELD(plan.targetlist);
    5033                 :         150 :     WRITE_NODE_FIELD(plan.qual);
    5034                 :         150 :     WRITE_NODE_FIELD(plan.lefttree);
    5035                 :         150 :     WRITE_NODE_FIELD(plan.righttree);
    5036                 :         150 :     WRITE_NODE_FIELD(plan.initPlan);
    5037                 :         150 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5038                 :         150 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5039                 :         150 :     WRITE_NODE_FIELD(bitmapplans);
    5040                 :         150 : }
    5041                 :             : 
    5042                 :             : static void
    5043                 :         265 : _outBitmapOr(StringInfo str, const BitmapOr *node)
    5044                 :             : {
    5045                 :         265 :     WRITE_NODE_TYPE("BITMAPOR");
    5046                 :             : 
    5047                 :         265 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5048                 :         265 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5049                 :         265 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5050                 :         265 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5051                 :         265 :     WRITE_INT_FIELD(plan.plan_width);
    5052         [ -  + ]:         265 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5053         [ +  + ]:         265 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5054         [ -  + ]:         265 :     WRITE_BOOL_FIELD(plan.async_capable);
    5055                 :         265 :     WRITE_INT_FIELD(plan.plan_node_id);
    5056                 :         265 :     WRITE_NODE_FIELD(plan.targetlist);
    5057                 :         265 :     WRITE_NODE_FIELD(plan.qual);
    5058                 :         265 :     WRITE_NODE_FIELD(plan.lefttree);
    5059                 :         265 :     WRITE_NODE_FIELD(plan.righttree);
    5060                 :         265 :     WRITE_NODE_FIELD(plan.initPlan);
    5061                 :         265 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5062                 :         265 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5063         [ -  + ]:         265 :     WRITE_BOOL_FIELD(isshared);
    5064                 :         265 :     WRITE_NODE_FIELD(bitmapplans);
    5065                 :         265 : }
    5066                 :             : 
    5067                 :             : static void
    5068                 :      147407 : _outSeqScan(StringInfo str, const SeqScan *node)
    5069                 :             : {
    5070                 :      147407 :     WRITE_NODE_TYPE("SEQSCAN");
    5071                 :             : 
    5072                 :      147407 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5073                 :      147407 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5074                 :      147407 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5075                 :      147407 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5076                 :      147407 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5077         [ +  + ]:      147407 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5078         [ +  + ]:      147407 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5079         [ -  + ]:      147407 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5080                 :      147407 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5081                 :      147407 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5082                 :      147407 :     WRITE_NODE_FIELD(scan.plan.qual);
    5083                 :      147407 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5084                 :      147407 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5085                 :      147407 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5086                 :      147407 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5087                 :      147407 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5088                 :      147407 :     WRITE_UINT_FIELD(scan.scanrelid);
    5089                 :      147407 : }
    5090                 :             : 
    5091                 :             : static void
    5092                 :         214 : _outSampleScan(StringInfo str, const SampleScan *node)
    5093                 :             : {
    5094                 :         214 :     WRITE_NODE_TYPE("SAMPLESCAN");
    5095                 :             : 
    5096                 :         214 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5097                 :         214 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5098                 :         214 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5099                 :         214 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5100                 :         214 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5101         [ -  + ]:         214 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5102         [ +  + ]:         214 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5103         [ -  + ]:         214 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5104                 :         214 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5105                 :         214 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5106                 :         214 :     WRITE_NODE_FIELD(scan.plan.qual);
    5107                 :         214 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5108                 :         214 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5109                 :         214 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5110                 :         214 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5111                 :         214 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5112                 :         214 :     WRITE_UINT_FIELD(scan.scanrelid);
    5113                 :         214 :     WRITE_NODE_FIELD(tablesample);
    5114                 :         214 : }
    5115                 :             : 
    5116                 :             : static void
    5117                 :       90101 : _outIndexScan(StringInfo str, const IndexScan *node)
    5118                 :             : {
    5119                 :       90101 :     WRITE_NODE_TYPE("INDEXSCAN");
    5120                 :             : 
    5121                 :       90101 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5122                 :       90101 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5123                 :       90101 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5124                 :       90101 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5125                 :       90101 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5126         [ +  + ]:       90101 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5127         [ +  + ]:       90101 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5128         [ -  + ]:       90101 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5129                 :       90101 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5130                 :       90101 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5131                 :       90101 :     WRITE_NODE_FIELD(scan.plan.qual);
    5132                 :       90101 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5133                 :       90101 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5134                 :       90101 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5135                 :       90101 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5136                 :       90101 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5137                 :       90101 :     WRITE_UINT_FIELD(scan.scanrelid);
    5138                 :       90101 :     WRITE_OID_FIELD(indexid);
    5139                 :       90101 :     WRITE_NODE_FIELD(indexqual);
    5140                 :       90101 :     WRITE_NODE_FIELD(indexqualorig);
    5141                 :       90101 :     WRITE_NODE_FIELD(indexorderby);
    5142                 :       90101 :     WRITE_NODE_FIELD(indexorderbyorig);
    5143                 :       90101 :     WRITE_NODE_FIELD(indexorderbyops);
    5144                 :       90101 :     WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
    5145                 :       90101 : }
    5146                 :             : 
    5147                 :             : static void
    5148                 :       11182 : _outIndexOnlyScan(StringInfo str, const IndexOnlyScan *node)
    5149                 :             : {
    5150                 :       11182 :     WRITE_NODE_TYPE("INDEXONLYSCAN");
    5151                 :             : 
    5152                 :       11182 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5153                 :       11182 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5154                 :       11182 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5155                 :       11182 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5156                 :       11182 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5157         [ +  + ]:       11182 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5158         [ +  + ]:       11182 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5159         [ -  + ]:       11182 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5160                 :       11182 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5161                 :       11182 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5162                 :       11182 :     WRITE_NODE_FIELD(scan.plan.qual);
    5163                 :       11182 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5164                 :       11182 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5165                 :       11182 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5166                 :       11182 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5167                 :       11182 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5168                 :       11182 :     WRITE_UINT_FIELD(scan.scanrelid);
    5169                 :       11182 :     WRITE_OID_FIELD(indexid);
    5170                 :       11182 :     WRITE_NODE_FIELD(indexqual);
    5171                 :       11182 :     WRITE_NODE_FIELD(recheckqual);
    5172                 :       11182 :     WRITE_NODE_FIELD(indexorderby);
    5173                 :       11182 :     WRITE_NODE_FIELD(indextlist);
    5174                 :       11182 :     WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
    5175                 :       11182 : }
    5176                 :             : 
    5177                 :             : static void
    5178                 :       16100 : _outBitmapIndexScan(StringInfo str, const BitmapIndexScan *node)
    5179                 :             : {
    5180                 :       16100 :     WRITE_NODE_TYPE("BITMAPINDEXSCAN");
    5181                 :             : 
    5182                 :       16100 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5183                 :       16100 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5184                 :       16100 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5185                 :       16100 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5186                 :       16100 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5187         [ -  + ]:       16100 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5188         [ +  + ]:       16100 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5189         [ -  + ]:       16100 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5190                 :       16100 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5191                 :       16100 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5192                 :       16100 :     WRITE_NODE_FIELD(scan.plan.qual);
    5193                 :       16100 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5194                 :       16100 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5195                 :       16100 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5196                 :       16100 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5197                 :       16100 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5198                 :       16100 :     WRITE_UINT_FIELD(scan.scanrelid);
    5199                 :       16100 :     WRITE_OID_FIELD(indexid);
    5200         [ +  + ]:       16100 :     WRITE_BOOL_FIELD(isshared);
    5201                 :       16100 :     WRITE_NODE_FIELD(indexqual);
    5202                 :       16100 :     WRITE_NODE_FIELD(indexqualorig);
    5203                 :       16100 : }
    5204                 :             : 
    5205                 :             : static void
    5206                 :       15681 : _outBitmapHeapScan(StringInfo str, const BitmapHeapScan *node)
    5207                 :             : {
    5208                 :       15681 :     WRITE_NODE_TYPE("BITMAPHEAPSCAN");
    5209                 :             : 
    5210                 :       15681 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5211                 :       15681 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5212                 :       15681 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5213                 :       15681 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5214                 :       15681 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5215         [ +  + ]:       15681 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5216         [ +  + ]:       15681 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5217         [ -  + ]:       15681 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5218                 :       15681 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5219                 :       15681 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5220                 :       15681 :     WRITE_NODE_FIELD(scan.plan.qual);
    5221                 :       15681 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5222                 :       15681 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5223                 :       15681 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5224                 :       15681 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5225                 :       15681 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5226                 :       15681 :     WRITE_UINT_FIELD(scan.scanrelid);
    5227                 :       15681 :     WRITE_NODE_FIELD(bitmapqualorig);
    5228                 :       15681 : }
    5229                 :             : 
    5230                 :             : static void
    5231                 :         475 : _outTidScan(StringInfo str, const TidScan *node)
    5232                 :             : {
    5233                 :         475 :     WRITE_NODE_TYPE("TIDSCAN");
    5234                 :             : 
    5235                 :         475 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5236                 :         475 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5237                 :         475 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5238                 :         475 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5239                 :         475 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5240         [ -  + ]:         475 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5241         [ +  + ]:         475 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5242         [ -  + ]:         475 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5243                 :         475 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5244                 :         475 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5245                 :         475 :     WRITE_NODE_FIELD(scan.plan.qual);
    5246                 :         475 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5247                 :         475 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5248                 :         475 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5249                 :         475 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5250                 :         475 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5251                 :         475 :     WRITE_UINT_FIELD(scan.scanrelid);
    5252                 :         475 :     WRITE_NODE_FIELD(tidquals);
    5253                 :         475 : }
    5254                 :             : 
    5255                 :             : static void
    5256                 :        1332 : _outTidRangeScan(StringInfo str, const TidRangeScan *node)
    5257                 :             : {
    5258                 :        1332 :     WRITE_NODE_TYPE("TIDRANGESCAN");
    5259                 :             : 
    5260                 :        1332 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5261                 :        1332 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5262                 :        1332 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5263                 :        1332 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5264                 :        1332 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5265         [ +  + ]:        1332 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5266         [ +  + ]:        1332 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5267         [ -  + ]:        1332 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5268                 :        1332 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5269                 :        1332 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5270                 :        1332 :     WRITE_NODE_FIELD(scan.plan.qual);
    5271                 :        1332 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5272                 :        1332 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5273                 :        1332 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5274                 :        1332 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5275                 :        1332 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5276                 :        1332 :     WRITE_UINT_FIELD(scan.scanrelid);
    5277                 :        1332 :     WRITE_NODE_FIELD(tidrangequals);
    5278                 :        1332 : }
    5279                 :             : 
    5280                 :             : static void
    5281                 :       13389 : _outSubqueryScan(StringInfo str, const SubqueryScan *node)
    5282                 :             : {
    5283                 :       13389 :     WRITE_NODE_TYPE("SUBQUERYSCAN");
    5284                 :             : 
    5285                 :       13389 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5286                 :       13389 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5287                 :       13389 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5288                 :       13389 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5289                 :       13389 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5290         [ -  + ]:       13389 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5291         [ +  + ]:       13389 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5292         [ -  + ]:       13389 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5293                 :       13389 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5294                 :       13389 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5295                 :       13389 :     WRITE_NODE_FIELD(scan.plan.qual);
    5296                 :       13389 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5297                 :       13389 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5298                 :       13389 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5299                 :       13389 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5300                 :       13389 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5301                 :       13389 :     WRITE_UINT_FIELD(scan.scanrelid);
    5302                 :       13389 :     WRITE_NODE_FIELD(subplan);
    5303                 :       13389 :     WRITE_ENUM_FIELD(scanstatus, SubqueryScanStatus);
    5304                 :       13389 : }
    5305                 :             : 
    5306                 :             : static void
    5307                 :       31357 : _outFunctionScan(StringInfo str, const FunctionScan *node)
    5308                 :             : {
    5309                 :       31357 :     WRITE_NODE_TYPE("FUNCTIONSCAN");
    5310                 :             : 
    5311                 :       31357 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5312                 :       31357 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5313                 :       31357 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5314                 :       31357 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5315                 :       31357 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5316         [ -  + ]:       31357 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5317         [ +  + ]:       31357 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5318         [ -  + ]:       31357 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5319                 :       31357 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5320                 :       31357 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5321                 :       31357 :     WRITE_NODE_FIELD(scan.plan.qual);
    5322                 :       31357 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5323                 :       31357 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5324                 :       31357 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5325                 :       31357 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5326                 :       31357 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5327                 :       31357 :     WRITE_UINT_FIELD(scan.scanrelid);
    5328                 :       31357 :     WRITE_NODE_FIELD(functions);
    5329         [ +  + ]:       31357 :     WRITE_BOOL_FIELD(funcordinality);
    5330                 :       31357 : }
    5331                 :             : 
    5332                 :             : static void
    5333                 :        5618 : _outValuesScan(StringInfo str, const ValuesScan *node)
    5334                 :             : {
    5335                 :        5618 :     WRITE_NODE_TYPE("VALUESSCAN");
    5336                 :             : 
    5337                 :        5618 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5338                 :        5618 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5339                 :        5618 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5340                 :        5618 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5341                 :        5618 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5342         [ -  + ]:        5618 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5343         [ +  + ]:        5618 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5344         [ -  + ]:        5618 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5345                 :        5618 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5346                 :        5618 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5347                 :        5618 :     WRITE_NODE_FIELD(scan.plan.qual);
    5348                 :        5618 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5349                 :        5618 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5350                 :        5618 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5351                 :        5618 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5352                 :        5618 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5353                 :        5618 :     WRITE_UINT_FIELD(scan.scanrelid);
    5354                 :        5618 :     WRITE_NODE_FIELD(values_lists);
    5355                 :        5618 : }
    5356                 :             : 
    5357                 :             : static void
    5358                 :         484 : _outTableFuncScan(StringInfo str, const TableFuncScan *node)
    5359                 :             : {
    5360                 :         484 :     WRITE_NODE_TYPE("TABLEFUNCSCAN");
    5361                 :             : 
    5362                 :         484 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5363                 :         484 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5364                 :         484 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5365                 :         484 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5366                 :         484 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5367         [ -  + ]:         484 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5368         [ -  + ]:         484 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5369         [ -  + ]:         484 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5370                 :         484 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5371                 :         484 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5372                 :         484 :     WRITE_NODE_FIELD(scan.plan.qual);
    5373                 :         484 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5374                 :         484 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5375                 :         484 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5376                 :         484 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5377                 :         484 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5378                 :         484 :     WRITE_UINT_FIELD(scan.scanrelid);
    5379                 :         484 :     WRITE_NODE_FIELD(tablefunc);
    5380                 :         484 : }
    5381                 :             : 
    5382                 :             : static void
    5383                 :        3066 : _outCteScan(StringInfo str, const CteScan *node)
    5384                 :             : {
    5385                 :        3066 :     WRITE_NODE_TYPE("CTESCAN");
    5386                 :             : 
    5387                 :        3066 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5388                 :        3066 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5389                 :        3066 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5390                 :        3066 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5391                 :        3066 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5392         [ -  + ]:        3066 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5393         [ -  + ]:        3066 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5394         [ -  + ]:        3066 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5395                 :        3066 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5396                 :        3066 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5397                 :        3066 :     WRITE_NODE_FIELD(scan.plan.qual);
    5398                 :        3066 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5399                 :        3066 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5400                 :        3066 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5401                 :        3066 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5402                 :        3066 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5403                 :        3066 :     WRITE_UINT_FIELD(scan.scanrelid);
    5404                 :        3066 :     WRITE_INT_FIELD(ctePlanId);
    5405                 :        3066 :     WRITE_INT_FIELD(cteParam);
    5406                 :        3066 : }
    5407                 :             : 
    5408                 :             : static void
    5409                 :         314 : _outNamedTuplestoreScan(StringInfo str, const NamedTuplestoreScan *node)
    5410                 :             : {
    5411                 :         314 :     WRITE_NODE_TYPE("NAMEDTUPLESTORESCAN");
    5412                 :             : 
    5413                 :         314 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5414                 :         314 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5415                 :         314 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5416                 :         314 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5417                 :         314 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5418         [ -  + ]:         314 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5419         [ -  + ]:         314 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5420         [ -  + ]:         314 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5421                 :         314 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5422                 :         314 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5423                 :         314 :     WRITE_NODE_FIELD(scan.plan.qual);
    5424                 :         314 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5425                 :         314 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5426                 :         314 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5427                 :         314 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5428                 :         314 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5429                 :         314 :     WRITE_UINT_FIELD(scan.scanrelid);
    5430                 :         314 :     WRITE_STRING_FIELD(enrname);
    5431                 :         314 : }
    5432                 :             : 
    5433                 :             : static void
    5434                 :         620 : _outWorkTableScan(StringInfo str, const WorkTableScan *node)
    5435                 :             : {
    5436                 :         620 :     WRITE_NODE_TYPE("WORKTABLESCAN");
    5437                 :             : 
    5438                 :         620 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5439                 :         620 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5440                 :         620 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5441                 :         620 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5442                 :         620 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5443         [ -  + ]:         620 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5444         [ -  + ]:         620 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5445         [ -  + ]:         620 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5446                 :         620 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5447                 :         620 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5448                 :         620 :     WRITE_NODE_FIELD(scan.plan.qual);
    5449                 :         620 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5450                 :         620 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5451                 :         620 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5452                 :         620 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5453                 :         620 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5454                 :         620 :     WRITE_UINT_FIELD(scan.scanrelid);
    5455                 :         620 :     WRITE_INT_FIELD(wtParam);
    5456                 :         620 : }
    5457                 :             : 
    5458                 :             : static void
    5459                 :        1113 : _outForeignScan(StringInfo str, const ForeignScan *node)
    5460                 :             : {
    5461                 :        1113 :     WRITE_NODE_TYPE("FOREIGNSCAN");
    5462                 :             : 
    5463                 :        1113 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5464                 :        1113 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5465                 :        1113 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5466                 :        1113 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5467                 :        1113 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5468         [ -  + ]:        1113 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5469         [ +  + ]:        1113 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5470         [ +  + ]:        1113 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5471                 :        1113 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5472                 :        1113 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5473                 :        1113 :     WRITE_NODE_FIELD(scan.plan.qual);
    5474                 :        1113 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5475                 :        1113 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5476                 :        1113 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5477                 :        1113 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5478                 :        1113 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5479                 :        1113 :     WRITE_UINT_FIELD(scan.scanrelid);
    5480                 :        1113 :     WRITE_ENUM_FIELD(operation, CmdType);
    5481                 :        1113 :     WRITE_UINT_FIELD(resultRelation);
    5482                 :        1113 :     WRITE_OID_FIELD(checkAsUser);
    5483                 :        1113 :     WRITE_OID_FIELD(fs_server);
    5484                 :        1113 :     WRITE_NODE_FIELD(fdw_exprs);
    5485                 :        1113 :     WRITE_NODE_FIELD(fdw_private);
    5486                 :        1113 :     WRITE_NODE_FIELD(fdw_scan_tlist);
    5487                 :        1113 :     WRITE_NODE_FIELD(fdw_recheck_quals);
    5488                 :        1113 :     WRITE_BITMAPSET_FIELD(fs_relids);
    5489                 :        1113 :     WRITE_BITMAPSET_FIELD(fs_base_relids);
    5490         [ +  + ]:        1113 :     WRITE_BOOL_FIELD(fsSystemCol);
    5491                 :        1113 : }
    5492                 :             : 
    5493                 :             : static void
    5494                 :          11 : _outCustomScan(StringInfo str, const CustomScan *node)
    5495                 :             : {
    5496                 :          11 :     WRITE_NODE_TYPE("CUSTOMSCAN");
    5497                 :             : 
    5498                 :          11 :     WRITE_INT_FIELD(scan.plan.disabled_nodes);
    5499                 :          11 :     WRITE_FLOAT_FIELD(scan.plan.startup_cost);
    5500                 :          11 :     WRITE_FLOAT_FIELD(scan.plan.total_cost);
    5501                 :          11 :     WRITE_FLOAT_FIELD(scan.plan.plan_rows);
    5502                 :          11 :     WRITE_INT_FIELD(scan.plan.plan_width);
    5503         [ -  + ]:          11 :     WRITE_BOOL_FIELD(scan.plan.parallel_aware);
    5504         [ +  - ]:          11 :     WRITE_BOOL_FIELD(scan.plan.parallel_safe);
    5505         [ -  + ]:          11 :     WRITE_BOOL_FIELD(scan.plan.async_capable);
    5506                 :          11 :     WRITE_INT_FIELD(scan.plan.plan_node_id);
    5507                 :          11 :     WRITE_NODE_FIELD(scan.plan.targetlist);
    5508                 :          11 :     WRITE_NODE_FIELD(scan.plan.qual);
    5509                 :          11 :     WRITE_NODE_FIELD(scan.plan.lefttree);
    5510                 :          11 :     WRITE_NODE_FIELD(scan.plan.righttree);
    5511                 :          11 :     WRITE_NODE_FIELD(scan.plan.initPlan);
    5512                 :          11 :     WRITE_BITMAPSET_FIELD(scan.plan.extParam);
    5513                 :          11 :     WRITE_BITMAPSET_FIELD(scan.plan.allParam);
    5514                 :          11 :     WRITE_UINT_FIELD(scan.scanrelid);
    5515                 :          11 :     WRITE_UINT_FIELD(flags);
    5516                 :          11 :     WRITE_NODE_FIELD(custom_plans);
    5517                 :          11 :     WRITE_NODE_FIELD(custom_exprs);
    5518                 :          11 :     WRITE_NODE_FIELD(custom_private);
    5519                 :          11 :     WRITE_NODE_FIELD(custom_scan_tlist);
    5520                 :          11 :     WRITE_BITMAPSET_FIELD(custom_relids);
    5521                 :             : 
    5522                 :             :     /* CustomName is a key to lookup CustomScanMethods */
    5523                 :          11 :     appendStringInfoString(str, " :methods ");
    5524                 :          11 :     outToken(str, node->methods->CustomName);
    5525                 :          11 : }
    5526                 :             : 
    5527                 :             : static void
    5528                 :       62350 : _outNestLoop(StringInfo str, const NestLoop *node)
    5529                 :             : {
    5530                 :       62350 :     WRITE_NODE_TYPE("NESTLOOP");
    5531                 :             : 
    5532                 :       62350 :     WRITE_INT_FIELD(join.plan.disabled_nodes);
    5533                 :       62350 :     WRITE_FLOAT_FIELD(join.plan.startup_cost);
    5534                 :       62350 :     WRITE_FLOAT_FIELD(join.plan.total_cost);
    5535                 :       62350 :     WRITE_FLOAT_FIELD(join.plan.plan_rows);
    5536                 :       62350 :     WRITE_INT_FIELD(join.plan.plan_width);
    5537         [ -  + ]:       62350 :     WRITE_BOOL_FIELD(join.plan.parallel_aware);
    5538         [ +  + ]:       62350 :     WRITE_BOOL_FIELD(join.plan.parallel_safe);
    5539         [ -  + ]:       62350 :     WRITE_BOOL_FIELD(join.plan.async_capable);
    5540                 :       62350 :     WRITE_INT_FIELD(join.plan.plan_node_id);
    5541                 :       62350 :     WRITE_NODE_FIELD(join.plan.targetlist);
    5542                 :       62350 :     WRITE_NODE_FIELD(join.plan.qual);
    5543                 :       62350 :     WRITE_NODE_FIELD(join.plan.lefttree);
    5544                 :       62350 :     WRITE_NODE_FIELD(join.plan.righttree);
    5545                 :       62350 :     WRITE_NODE_FIELD(join.plan.initPlan);
    5546                 :       62350 :     WRITE_BITMAPSET_FIELD(join.plan.extParam);
    5547                 :       62350 :     WRITE_BITMAPSET_FIELD(join.plan.allParam);
    5548                 :       62350 :     WRITE_ENUM_FIELD(join.jointype, JoinType);
    5549         [ +  + ]:       62350 :     WRITE_BOOL_FIELD(join.inner_unique);
    5550                 :       62350 :     WRITE_NODE_FIELD(join.joinqual);
    5551                 :       62350 :     WRITE_BITMAPSET_FIELD(join.ojrelids);
    5552                 :       62350 :     WRITE_NODE_FIELD(nestParams);
    5553                 :       62350 : }
    5554                 :             : 
    5555                 :             : static void
    5556                 :       37943 : _outNestLoopParam(StringInfo str, const NestLoopParam *node)
    5557                 :             : {
    5558                 :       37943 :     WRITE_NODE_TYPE("NESTLOOPPARAM");
    5559                 :             : 
    5560                 :       37943 :     WRITE_INT_FIELD(paramno);
    5561                 :       37943 :     WRITE_NODE_FIELD(paramval);
    5562                 :       37943 : }
    5563                 :             : 
    5564                 :             : static void
    5565                 :        4741 : _outMergeJoin(StringInfo str, const MergeJoin *node)
    5566                 :             : {
    5567                 :        4741 :     WRITE_NODE_TYPE("MERGEJOIN");
    5568                 :             : 
    5569                 :        4741 :     WRITE_INT_FIELD(join.plan.disabled_nodes);
    5570                 :        4741 :     WRITE_FLOAT_FIELD(join.plan.startup_cost);
    5571                 :        4741 :     WRITE_FLOAT_FIELD(join.plan.total_cost);
    5572                 :        4741 :     WRITE_FLOAT_FIELD(join.plan.plan_rows);
    5573                 :        4741 :     WRITE_INT_FIELD(join.plan.plan_width);
    5574         [ -  + ]:        4741 :     WRITE_BOOL_FIELD(join.plan.parallel_aware);
    5575         [ +  + ]:        4741 :     WRITE_BOOL_FIELD(join.plan.parallel_safe);
    5576         [ -  + ]:        4741 :     WRITE_BOOL_FIELD(join.plan.async_capable);
    5577                 :        4741 :     WRITE_INT_FIELD(join.plan.plan_node_id);
    5578                 :        4741 :     WRITE_NODE_FIELD(join.plan.targetlist);
    5579                 :        4741 :     WRITE_NODE_FIELD(join.plan.qual);
    5580                 :        4741 :     WRITE_NODE_FIELD(join.plan.lefttree);
    5581                 :        4741 :     WRITE_NODE_FIELD(join.plan.righttree);
    5582                 :        4741 :     WRITE_NODE_FIELD(join.plan.initPlan);
    5583                 :        4741 :     WRITE_BITMAPSET_FIELD(join.plan.extParam);
    5584                 :        4741 :     WRITE_BITMAPSET_FIELD(join.plan.allParam);
    5585                 :        4741 :     WRITE_ENUM_FIELD(join.jointype, JoinType);
    5586         [ +  + ]:        4741 :     WRITE_BOOL_FIELD(join.inner_unique);
    5587                 :        4741 :     WRITE_NODE_FIELD(join.joinqual);
    5588                 :        4741 :     WRITE_BITMAPSET_FIELD(join.ojrelids);
    5589         [ +  + ]:        4741 :     WRITE_BOOL_FIELD(skip_mark_restore);
    5590                 :        4741 :     WRITE_NODE_FIELD(mergeclauses);
    5591                 :        4741 :     WRITE_OID_ARRAY(mergeFamilies, list_length(node->mergeclauses));
    5592                 :        4741 :     WRITE_OID_ARRAY(mergeCollations, list_length(node->mergeclauses));
    5593                 :        4741 :     WRITE_BOOL_ARRAY(mergeReversals, list_length(node->mergeclauses));
    5594                 :        4741 :     WRITE_BOOL_ARRAY(mergeNullsFirst, list_length(node->mergeclauses));
    5595                 :        4741 : }
    5596                 :             : 
    5597                 :             : static void
    5598                 :       29035 : _outHashJoin(StringInfo str, const HashJoin *node)
    5599                 :             : {
    5600                 :       29035 :     WRITE_NODE_TYPE("HASHJOIN");
    5601                 :             : 
    5602                 :       29035 :     WRITE_INT_FIELD(join.plan.disabled_nodes);
    5603                 :       29035 :     WRITE_FLOAT_FIELD(join.plan.startup_cost);
    5604                 :       29035 :     WRITE_FLOAT_FIELD(join.plan.total_cost);
    5605                 :       29035 :     WRITE_FLOAT_FIELD(join.plan.plan_rows);
    5606                 :       29035 :     WRITE_INT_FIELD(join.plan.plan_width);
    5607         [ +  + ]:       29035 :     WRITE_BOOL_FIELD(join.plan.parallel_aware);
    5608         [ +  + ]:       29035 :     WRITE_BOOL_FIELD(join.plan.parallel_safe);
    5609         [ -  + ]:       29035 :     WRITE_BOOL_FIELD(join.plan.async_capable);
    5610                 :       29035 :     WRITE_INT_FIELD(join.plan.plan_node_id);
    5611                 :       29035 :     WRITE_NODE_FIELD(join.plan.targetlist);
    5612                 :       29035 :     WRITE_NODE_FIELD(join.plan.qual);
    5613                 :       29035 :     WRITE_NODE_FIELD(join.plan.lefttree);
    5614                 :       29035 :     WRITE_NODE_FIELD(join.plan.righttree);
    5615                 :       29035 :     WRITE_NODE_FIELD(join.plan.initPlan);
    5616                 :       29035 :     WRITE_BITMAPSET_FIELD(join.plan.extParam);
    5617                 :       29035 :     WRITE_BITMAPSET_FIELD(join.plan.allParam);
    5618                 :       29035 :     WRITE_ENUM_FIELD(join.jointype, JoinType);
    5619         [ +  + ]:       29035 :     WRITE_BOOL_FIELD(join.inner_unique);
    5620                 :       29035 :     WRITE_NODE_FIELD(join.joinqual);
    5621                 :       29035 :     WRITE_BITMAPSET_FIELD(join.ojrelids);
    5622                 :       29035 :     WRITE_NODE_FIELD(hashclauses);
    5623                 :       29035 :     WRITE_NODE_FIELD(hashoperators);
    5624                 :       29035 :     WRITE_NODE_FIELD(hashcollations);
    5625                 :       29035 :     WRITE_NODE_FIELD(hashkeys);
    5626                 :       29035 : }
    5627                 :             : 
    5628                 :             : static void
    5629                 :        2891 : _outMaterial(StringInfo str, const Material *node)
    5630                 :             : {
    5631                 :        2891 :     WRITE_NODE_TYPE("MATERIAL");
    5632                 :             : 
    5633                 :        2891 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5634                 :        2891 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5635                 :        2891 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5636                 :        2891 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5637                 :        2891 :     WRITE_INT_FIELD(plan.plan_width);
    5638         [ -  + ]:        2891 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5639         [ +  + ]:        2891 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5640         [ -  + ]:        2891 :     WRITE_BOOL_FIELD(plan.async_capable);
    5641                 :        2891 :     WRITE_INT_FIELD(plan.plan_node_id);
    5642                 :        2891 :     WRITE_NODE_FIELD(plan.targetlist);
    5643                 :        2891 :     WRITE_NODE_FIELD(plan.qual);
    5644                 :        2891 :     WRITE_NODE_FIELD(plan.lefttree);
    5645                 :        2891 :     WRITE_NODE_FIELD(plan.righttree);
    5646                 :        2891 :     WRITE_NODE_FIELD(plan.initPlan);
    5647                 :        2891 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5648                 :        2891 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5649                 :        2891 : }
    5650                 :             : 
    5651                 :             : static void
    5652                 :        1296 : _outMemoize(StringInfo str, const Memoize *node)
    5653                 :             : {
    5654                 :        1296 :     WRITE_NODE_TYPE("MEMOIZE");
    5655                 :             : 
    5656                 :        1296 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5657                 :        1296 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5658                 :        1296 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5659                 :        1296 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5660                 :        1296 :     WRITE_INT_FIELD(plan.plan_width);
    5661         [ -  + ]:        1296 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5662         [ +  + ]:        1296 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5663         [ -  + ]:        1296 :     WRITE_BOOL_FIELD(plan.async_capable);
    5664                 :        1296 :     WRITE_INT_FIELD(plan.plan_node_id);
    5665                 :        1296 :     WRITE_NODE_FIELD(plan.targetlist);
    5666                 :        1296 :     WRITE_NODE_FIELD(plan.qual);
    5667                 :        1296 :     WRITE_NODE_FIELD(plan.lefttree);
    5668                 :        1296 :     WRITE_NODE_FIELD(plan.righttree);
    5669                 :        1296 :     WRITE_NODE_FIELD(plan.initPlan);
    5670                 :        1296 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5671                 :        1296 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5672                 :        1296 :     WRITE_INT_FIELD(numKeys);
    5673                 :        1296 :     WRITE_OID_ARRAY(hashOperators, node->numKeys);
    5674                 :        1296 :     WRITE_OID_ARRAY(collations, node->numKeys);
    5675                 :        1296 :     WRITE_NODE_FIELD(param_exprs);
    5676         [ +  + ]:        1296 :     WRITE_BOOL_FIELD(singlerow);
    5677         [ +  + ]:        1296 :     WRITE_BOOL_FIELD(binary_mode);
    5678                 :        1296 :     WRITE_UINT_FIELD(est_entries);
    5679                 :        1296 :     WRITE_BITMAPSET_FIELD(keyparamids);
    5680                 :        1296 :     WRITE_FLOAT_FIELD(est_calls);
    5681                 :        1296 :     WRITE_FLOAT_FIELD(est_unique_keys);
    5682                 :        1296 :     WRITE_FLOAT_FIELD(est_hit_ratio);
    5683                 :        1296 : }
    5684                 :             : 
    5685                 :             : static void
    5686                 :       52925 : _outSort(StringInfo str, const Sort *node)
    5687                 :             : {
    5688                 :       52925 :     WRITE_NODE_TYPE("SORT");
    5689                 :             : 
    5690                 :       52925 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5691                 :       52925 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5692                 :       52925 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5693                 :       52925 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5694                 :       52925 :     WRITE_INT_FIELD(plan.plan_width);
    5695         [ -  + ]:       52925 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5696         [ +  + ]:       52925 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5697         [ -  + ]:       52925 :     WRITE_BOOL_FIELD(plan.async_capable);
    5698                 :       52925 :     WRITE_INT_FIELD(plan.plan_node_id);
    5699                 :       52925 :     WRITE_NODE_FIELD(plan.targetlist);
    5700                 :       52925 :     WRITE_NODE_FIELD(plan.qual);
    5701                 :       52925 :     WRITE_NODE_FIELD(plan.lefttree);
    5702                 :       52925 :     WRITE_NODE_FIELD(plan.righttree);
    5703                 :       52925 :     WRITE_NODE_FIELD(plan.initPlan);
    5704                 :       52925 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5705                 :       52925 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5706                 :       52925 :     WRITE_INT_FIELD(numCols);
    5707                 :       52925 :     WRITE_ATTRNUMBER_ARRAY(sortColIdx, node->numCols);
    5708                 :       52925 :     WRITE_OID_ARRAY(sortOperators, node->numCols);
    5709                 :       52925 :     WRITE_OID_ARRAY(collations, node->numCols);
    5710                 :       52925 :     WRITE_BOOL_ARRAY(nullsFirst, node->numCols);
    5711                 :       52925 : }
    5712                 :             : 
    5713                 :             : static void
    5714                 :         710 : _outIncrementalSort(StringInfo str, const IncrementalSort *node)
    5715                 :             : {
    5716                 :         710 :     WRITE_NODE_TYPE("INCREMENTALSORT");
    5717                 :             : 
    5718                 :         710 :     WRITE_INT_FIELD(sort.plan.disabled_nodes);
    5719                 :         710 :     WRITE_FLOAT_FIELD(sort.plan.startup_cost);
    5720                 :         710 :     WRITE_FLOAT_FIELD(sort.plan.total_cost);
    5721                 :         710 :     WRITE_FLOAT_FIELD(sort.plan.plan_rows);
    5722                 :         710 :     WRITE_INT_FIELD(sort.plan.plan_width);
    5723         [ -  + ]:         710 :     WRITE_BOOL_FIELD(sort.plan.parallel_aware);
    5724         [ +  + ]:         710 :     WRITE_BOOL_FIELD(sort.plan.parallel_safe);
    5725         [ -  + ]:         710 :     WRITE_BOOL_FIELD(sort.plan.async_capable);
    5726                 :         710 :     WRITE_INT_FIELD(sort.plan.plan_node_id);
    5727                 :         710 :     WRITE_NODE_FIELD(sort.plan.targetlist);
    5728                 :         710 :     WRITE_NODE_FIELD(sort.plan.qual);
    5729                 :         710 :     WRITE_NODE_FIELD(sort.plan.lefttree);
    5730                 :         710 :     WRITE_NODE_FIELD(sort.plan.righttree);
    5731                 :         710 :     WRITE_NODE_FIELD(sort.plan.initPlan);
    5732                 :         710 :     WRITE_BITMAPSET_FIELD(sort.plan.extParam);
    5733                 :         710 :     WRITE_BITMAPSET_FIELD(sort.plan.allParam);
    5734                 :         710 :     WRITE_INT_FIELD(sort.numCols);
    5735                 :         710 :     WRITE_ATTRNUMBER_ARRAY(sort.sortColIdx, node->sort.numCols);
    5736                 :         710 :     WRITE_OID_ARRAY(sort.sortOperators, node->sort.numCols);
    5737                 :         710 :     WRITE_OID_ARRAY(sort.collations, node->sort.numCols);
    5738                 :         710 :     WRITE_BOOL_ARRAY(sort.nullsFirst, node->sort.numCols);
    5739                 :         710 :     WRITE_INT_FIELD(nPresortedCols);
    5740                 :         710 :     WRITE_FLOAT_FIELD(numGroups);
    5741                 :         710 : }
    5742                 :             : 
    5743                 :             : static void
    5744                 :         182 : _outGroup(StringInfo str, const Group *node)
    5745                 :             : {
    5746                 :         182 :     WRITE_NODE_TYPE("GROUP");
    5747                 :             : 
    5748                 :         182 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5749                 :         182 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5750                 :         182 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5751                 :         182 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5752                 :         182 :     WRITE_INT_FIELD(plan.plan_width);
    5753         [ -  + ]:         182 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5754         [ +  + ]:         182 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5755         [ -  + ]:         182 :     WRITE_BOOL_FIELD(plan.async_capable);
    5756                 :         182 :     WRITE_INT_FIELD(plan.plan_node_id);
    5757                 :         182 :     WRITE_NODE_FIELD(plan.targetlist);
    5758                 :         182 :     WRITE_NODE_FIELD(plan.qual);
    5759                 :         182 :     WRITE_NODE_FIELD(plan.lefttree);
    5760                 :         182 :     WRITE_NODE_FIELD(plan.righttree);
    5761                 :         182 :     WRITE_NODE_FIELD(plan.initPlan);
    5762                 :         182 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5763                 :         182 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5764                 :         182 :     WRITE_INT_FIELD(numCols);
    5765                 :         182 :     WRITE_ATTRNUMBER_ARRAY(grpColIdx, node->numCols);
    5766                 :         182 :     WRITE_OID_ARRAY(grpOperators, node->numCols);
    5767                 :         182 :     WRITE_OID_ARRAY(grpCollations, node->numCols);
    5768                 :         182 : }
    5769                 :             : 
    5770                 :             : static void
    5771                 :       32948 : _outAgg(StringInfo str, const Agg *node)
    5772                 :             : {
    5773                 :       32948 :     WRITE_NODE_TYPE("AGG");
    5774                 :             : 
    5775                 :       32948 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5776                 :       32948 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5777                 :       32948 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5778                 :       32948 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5779                 :       32948 :     WRITE_INT_FIELD(plan.plan_width);
    5780         [ -  + ]:       32948 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5781         [ +  + ]:       32948 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5782         [ -  + ]:       32948 :     WRITE_BOOL_FIELD(plan.async_capable);
    5783                 :       32948 :     WRITE_INT_FIELD(plan.plan_node_id);
    5784                 :       32948 :     WRITE_NODE_FIELD(plan.targetlist);
    5785                 :       32948 :     WRITE_NODE_FIELD(plan.qual);
    5786                 :       32948 :     WRITE_NODE_FIELD(plan.lefttree);
    5787                 :       32948 :     WRITE_NODE_FIELD(plan.righttree);
    5788                 :       32948 :     WRITE_NODE_FIELD(plan.initPlan);
    5789                 :       32948 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5790                 :       32948 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5791                 :       32948 :     WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
    5792                 :       32948 :     WRITE_ENUM_FIELD(aggsplit, AggSplit);
    5793                 :       32948 :     WRITE_INT_FIELD(numCols);
    5794                 :       32948 :     WRITE_ATTRNUMBER_ARRAY(grpColIdx, node->numCols);
    5795                 :       32948 :     WRITE_OID_ARRAY(grpOperators, node->numCols);
    5796                 :       32948 :     WRITE_OID_ARRAY(grpCollations, node->numCols);
    5797                 :       32948 :     WRITE_FLOAT_FIELD(numGroups);
    5798                 :       32948 :     WRITE_UINT64_FIELD(transitionSpace);
    5799                 :       32948 :     WRITE_BITMAPSET_FIELD(aggParams);
    5800                 :       32948 :     WRITE_NODE_FIELD(groupingSets);
    5801                 :       32948 :     WRITE_NODE_FIELD(chain);
    5802                 :       32948 : }
    5803                 :             : 
    5804                 :             : static void
    5805                 :        2011 : _outWindowAgg(StringInfo str, const WindowAgg *node)
    5806                 :             : {
    5807                 :        2011 :     WRITE_NODE_TYPE("WINDOWAGG");
    5808                 :             : 
    5809                 :        2011 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5810                 :        2011 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5811                 :        2011 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5812                 :        2011 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5813                 :        2011 :     WRITE_INT_FIELD(plan.plan_width);
    5814         [ -  + ]:        2011 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5815         [ -  + ]:        2011 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5816         [ -  + ]:        2011 :     WRITE_BOOL_FIELD(plan.async_capable);
    5817                 :        2011 :     WRITE_INT_FIELD(plan.plan_node_id);
    5818                 :        2011 :     WRITE_NODE_FIELD(plan.targetlist);
    5819                 :        2011 :     WRITE_NODE_FIELD(plan.qual);
    5820                 :        2011 :     WRITE_NODE_FIELD(plan.lefttree);
    5821                 :        2011 :     WRITE_NODE_FIELD(plan.righttree);
    5822                 :        2011 :     WRITE_NODE_FIELD(plan.initPlan);
    5823                 :        2011 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5824                 :        2011 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5825                 :        2011 :     WRITE_STRING_FIELD(winname);
    5826                 :        2011 :     WRITE_UINT_FIELD(winref);
    5827                 :        2011 :     WRITE_INT_FIELD(partNumCols);
    5828                 :        2011 :     WRITE_ATTRNUMBER_ARRAY(partColIdx, node->partNumCols);
    5829                 :        2011 :     WRITE_OID_ARRAY(partOperators, node->partNumCols);
    5830                 :        2011 :     WRITE_OID_ARRAY(partCollations, node->partNumCols);
    5831                 :        2011 :     WRITE_INT_FIELD(ordNumCols);
    5832                 :        2011 :     WRITE_ATTRNUMBER_ARRAY(ordColIdx, node->ordNumCols);
    5833                 :        2011 :     WRITE_OID_ARRAY(ordOperators, node->ordNumCols);
    5834                 :        2011 :     WRITE_OID_ARRAY(ordCollations, node->ordNumCols);
    5835                 :        2011 :     WRITE_INT_FIELD(frameOptions);
    5836                 :        2011 :     WRITE_NODE_FIELD(startOffset);
    5837                 :        2011 :     WRITE_NODE_FIELD(endOffset);
    5838                 :        2011 :     WRITE_NODE_FIELD(runCondition);
    5839                 :        2011 :     WRITE_NODE_FIELD(runConditionOrig);
    5840                 :        2011 :     WRITE_OID_FIELD(startInRangeFunc);
    5841                 :        2011 :     WRITE_OID_FIELD(endInRangeFunc);
    5842                 :        2011 :     WRITE_OID_FIELD(inRangeColl);
    5843         [ +  + ]:        2011 :     WRITE_BOOL_FIELD(inRangeAsc);
    5844         [ +  + ]:        2011 :     WRITE_BOOL_FIELD(inRangeNullsFirst);
    5845         [ +  + ]:        2011 :     WRITE_BOOL_FIELD(topWindow);
    5846                 :        2011 : }
    5847                 :             : 
    5848                 :             : static void
    5849                 :        3491 : _outUnique(StringInfo str, const Unique *node)
    5850                 :             : {
    5851                 :        3491 :     WRITE_NODE_TYPE("UNIQUE");
    5852                 :             : 
    5853                 :        3491 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5854                 :        3491 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5855                 :        3491 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5856                 :        3491 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5857                 :        3491 :     WRITE_INT_FIELD(plan.plan_width);
    5858         [ -  + ]:        3491 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5859         [ +  + ]:        3491 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5860         [ -  + ]:        3491 :     WRITE_BOOL_FIELD(plan.async_capable);
    5861                 :        3491 :     WRITE_INT_FIELD(plan.plan_node_id);
    5862                 :        3491 :     WRITE_NODE_FIELD(plan.targetlist);
    5863                 :        3491 :     WRITE_NODE_FIELD(plan.qual);
    5864                 :        3491 :     WRITE_NODE_FIELD(plan.lefttree);
    5865                 :        3491 :     WRITE_NODE_FIELD(plan.righttree);
    5866                 :        3491 :     WRITE_NODE_FIELD(plan.initPlan);
    5867                 :        3491 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5868                 :        3491 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5869                 :        3491 :     WRITE_INT_FIELD(numCols);
    5870                 :        3491 :     WRITE_ATTRNUMBER_ARRAY(uniqColIdx, node->numCols);
    5871                 :        3491 :     WRITE_OID_ARRAY(uniqOperators, node->numCols);
    5872                 :        3491 :     WRITE_OID_ARRAY(uniqCollations, node->numCols);
    5873                 :        3491 : }
    5874                 :             : 
    5875                 :             : static void
    5876                 :         771 : _outGather(StringInfo str, const Gather *node)
    5877                 :             : {
    5878                 :         771 :     WRITE_NODE_TYPE("GATHER");
    5879                 :             : 
    5880                 :         771 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5881                 :         771 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5882                 :         771 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5883                 :         771 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5884                 :         771 :     WRITE_INT_FIELD(plan.plan_width);
    5885         [ -  + ]:         771 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5886         [ -  + ]:         771 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5887         [ -  + ]:         771 :     WRITE_BOOL_FIELD(plan.async_capable);
    5888                 :         771 :     WRITE_INT_FIELD(plan.plan_node_id);
    5889                 :         771 :     WRITE_NODE_FIELD(plan.targetlist);
    5890                 :         771 :     WRITE_NODE_FIELD(plan.qual);
    5891                 :         771 :     WRITE_NODE_FIELD(plan.lefttree);
    5892                 :         771 :     WRITE_NODE_FIELD(plan.righttree);
    5893                 :         771 :     WRITE_NODE_FIELD(plan.initPlan);
    5894                 :         771 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5895                 :         771 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5896                 :         771 :     WRITE_INT_FIELD(num_workers);
    5897                 :         771 :     WRITE_INT_FIELD(rescan_param);
    5898         [ +  + ]:         771 :     WRITE_BOOL_FIELD(single_copy);
    5899         [ +  + ]:         771 :     WRITE_BOOL_FIELD(invisible);
    5900                 :         771 :     WRITE_BITMAPSET_FIELD(initParam);
    5901                 :         771 : }
    5902                 :             : 
    5903                 :             : static void
    5904                 :         248 : _outGatherMerge(StringInfo str, const GatherMerge *node)
    5905                 :             : {
    5906                 :         248 :     WRITE_NODE_TYPE("GATHERMERGE");
    5907                 :             : 
    5908                 :         248 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5909                 :         248 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5910                 :         248 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5911                 :         248 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5912                 :         248 :     WRITE_INT_FIELD(plan.plan_width);
    5913         [ -  + ]:         248 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5914         [ -  + ]:         248 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5915         [ -  + ]:         248 :     WRITE_BOOL_FIELD(plan.async_capable);
    5916                 :         248 :     WRITE_INT_FIELD(plan.plan_node_id);
    5917                 :         248 :     WRITE_NODE_FIELD(plan.targetlist);
    5918                 :         248 :     WRITE_NODE_FIELD(plan.qual);
    5919                 :         248 :     WRITE_NODE_FIELD(plan.lefttree);
    5920                 :         248 :     WRITE_NODE_FIELD(plan.righttree);
    5921                 :         248 :     WRITE_NODE_FIELD(plan.initPlan);
    5922                 :         248 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5923                 :         248 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5924                 :         248 :     WRITE_INT_FIELD(num_workers);
    5925                 :         248 :     WRITE_INT_FIELD(rescan_param);
    5926                 :         248 :     WRITE_INT_FIELD(numCols);
    5927                 :         248 :     WRITE_ATTRNUMBER_ARRAY(sortColIdx, node->numCols);
    5928                 :         248 :     WRITE_OID_ARRAY(sortOperators, node->numCols);
    5929                 :         248 :     WRITE_OID_ARRAY(collations, node->numCols);
    5930                 :         248 :     WRITE_BOOL_ARRAY(nullsFirst, node->numCols);
    5931                 :         248 :     WRITE_BITMAPSET_FIELD(initParam);
    5932                 :         248 : }
    5933                 :             : 
    5934                 :             : static void
    5935                 :       29035 : _outHash(StringInfo str, const Hash *node)
    5936                 :             : {
    5937                 :       29035 :     WRITE_NODE_TYPE("HASH");
    5938                 :             : 
    5939                 :       29035 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5940                 :       29035 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5941                 :       29035 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5942                 :       29035 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5943                 :       29035 :     WRITE_INT_FIELD(plan.plan_width);
    5944         [ +  + ]:       29035 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5945         [ +  + ]:       29035 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5946         [ -  + ]:       29035 :     WRITE_BOOL_FIELD(plan.async_capable);
    5947                 :       29035 :     WRITE_INT_FIELD(plan.plan_node_id);
    5948                 :       29035 :     WRITE_NODE_FIELD(plan.targetlist);
    5949                 :       29035 :     WRITE_NODE_FIELD(plan.qual);
    5950                 :       29035 :     WRITE_NODE_FIELD(plan.lefttree);
    5951                 :       29035 :     WRITE_NODE_FIELD(plan.righttree);
    5952                 :       29035 :     WRITE_NODE_FIELD(plan.initPlan);
    5953                 :       29035 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5954                 :       29035 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5955                 :       29035 :     WRITE_NODE_FIELD(hashkeys);
    5956                 :       29035 :     WRITE_OID_FIELD(skewTable);
    5957                 :       29035 :     WRITE_INT_FIELD(skewColumn);
    5958         [ +  + ]:       29035 :     WRITE_BOOL_FIELD(skewInherit);
    5959                 :       29035 :     WRITE_FLOAT_FIELD(rows_total);
    5960                 :       29035 : }
    5961                 :             : 
    5962                 :             : static void
    5963                 :         527 : _outSetOp(StringInfo str, const SetOp *node)
    5964                 :             : {
    5965                 :         527 :     WRITE_NODE_TYPE("SETOP");
    5966                 :             : 
    5967                 :         527 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5968                 :         527 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    5969                 :         527 :     WRITE_FLOAT_FIELD(plan.total_cost);
    5970                 :         527 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    5971                 :         527 :     WRITE_INT_FIELD(plan.plan_width);
    5972         [ -  + ]:         527 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    5973         [ -  + ]:         527 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    5974         [ -  + ]:         527 :     WRITE_BOOL_FIELD(plan.async_capable);
    5975                 :         527 :     WRITE_INT_FIELD(plan.plan_node_id);
    5976                 :         527 :     WRITE_NODE_FIELD(plan.targetlist);
    5977                 :         527 :     WRITE_NODE_FIELD(plan.qual);
    5978                 :         527 :     WRITE_NODE_FIELD(plan.lefttree);
    5979                 :         527 :     WRITE_NODE_FIELD(plan.righttree);
    5980                 :         527 :     WRITE_NODE_FIELD(plan.initPlan);
    5981                 :         527 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    5982                 :         527 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    5983                 :         527 :     WRITE_ENUM_FIELD(cmd, SetOpCmd);
    5984                 :         527 :     WRITE_ENUM_FIELD(strategy, SetOpStrategy);
    5985                 :         527 :     WRITE_INT_FIELD(numCols);
    5986                 :         527 :     WRITE_ATTRNUMBER_ARRAY(cmpColIdx, node->numCols);
    5987                 :         527 :     WRITE_OID_ARRAY(cmpOperators, node->numCols);
    5988                 :         527 :     WRITE_OID_ARRAY(cmpCollations, node->numCols);
    5989                 :         527 :     WRITE_BOOL_ARRAY(cmpNullsFirst, node->numCols);
    5990                 :         527 :     WRITE_FLOAT_FIELD(numGroups);
    5991                 :         527 : }
    5992                 :             : 
    5993                 :             : static void
    5994                 :        5951 : _outLockRows(StringInfo str, const LockRows *node)
    5995                 :             : {
    5996                 :        5951 :     WRITE_NODE_TYPE("LOCKROWS");
    5997                 :             : 
    5998                 :        5951 :     WRITE_INT_FIELD(plan.disabled_nodes);
    5999                 :        5951 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    6000                 :        5951 :     WRITE_FLOAT_FIELD(plan.total_cost);
    6001                 :        5951 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    6002                 :        5951 :     WRITE_INT_FIELD(plan.plan_width);
    6003         [ -  + ]:        5951 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    6004         [ -  + ]:        5951 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    6005         [ -  + ]:        5951 :     WRITE_BOOL_FIELD(plan.async_capable);
    6006                 :        5951 :     WRITE_INT_FIELD(plan.plan_node_id);
    6007                 :        5951 :     WRITE_NODE_FIELD(plan.targetlist);
    6008                 :        5951 :     WRITE_NODE_FIELD(plan.qual);
    6009                 :        5951 :     WRITE_NODE_FIELD(plan.lefttree);
    6010                 :        5951 :     WRITE_NODE_FIELD(plan.righttree);
    6011                 :        5951 :     WRITE_NODE_FIELD(plan.initPlan);
    6012                 :        5951 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    6013                 :        5951 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    6014                 :        5951 :     WRITE_NODE_FIELD(rowMarks);
    6015                 :        5951 :     WRITE_INT_FIELD(epqParam);
    6016                 :        5951 : }
    6017                 :             : 
    6018                 :             : static void
    6019                 :        3076 : _outLimit(StringInfo str, const Limit *node)
    6020                 :             : {
    6021                 :        3076 :     WRITE_NODE_TYPE("LIMIT");
    6022                 :             : 
    6023                 :        3076 :     WRITE_INT_FIELD(plan.disabled_nodes);
    6024                 :        3076 :     WRITE_FLOAT_FIELD(plan.startup_cost);
    6025                 :        3076 :     WRITE_FLOAT_FIELD(plan.total_cost);
    6026                 :        3076 :     WRITE_FLOAT_FIELD(plan.plan_rows);
    6027                 :        3076 :     WRITE_INT_FIELD(plan.plan_width);
    6028         [ -  + ]:        3076 :     WRITE_BOOL_FIELD(plan.parallel_aware);
    6029         [ +  + ]:        3076 :     WRITE_BOOL_FIELD(plan.parallel_safe);
    6030         [ -  + ]:        3076 :     WRITE_BOOL_FIELD(plan.async_capable);
    6031                 :        3076 :     WRITE_INT_FIELD(plan.plan_node_id);
    6032                 :        3076 :     WRITE_NODE_FIELD(plan.targetlist);
    6033                 :        3076 :     WRITE_NODE_FIELD(plan.qual);
    6034                 :        3076 :     WRITE_NODE_FIELD(plan.lefttree);
    6035                 :        3076 :     WRITE_NODE_FIELD(plan.righttree);
    6036                 :        3076 :     WRITE_NODE_FIELD(plan.initPlan);
    6037                 :        3076 :     WRITE_BITMAPSET_FIELD(plan.extParam);
    6038                 :        3076 :     WRITE_BITMAPSET_FIELD(plan.allParam);
    6039                 :        3076 :     WRITE_NODE_FIELD(limitOffset);
    6040                 :        3076 :     WRITE_NODE_FIELD(limitCount);
    6041                 :        3076 :     WRITE_ENUM_FIELD(limitOption, LimitOption);
    6042                 :        3076 :     WRITE_INT_FIELD(uniqNumCols);
    6043                 :        3076 :     WRITE_ATTRNUMBER_ARRAY(uniqColIdx, node->uniqNumCols);
    6044                 :        3076 :     WRITE_OID_ARRAY(uniqOperators, node->uniqNumCols);
    6045                 :        3076 :     WRITE_OID_ARRAY(uniqCollations, node->uniqNumCols);
    6046                 :        3076 : }
    6047                 :             : 
    6048                 :             : static void
    6049                 :       18774 : _outPlanRowMark(StringInfo str, const PlanRowMark *node)
    6050                 :             : {
    6051                 :       18774 :     WRITE_NODE_TYPE("PLANROWMARK");
    6052                 :             : 
    6053                 :       18774 :     WRITE_UINT_FIELD(rti);
    6054                 :       18774 :     WRITE_UINT_FIELD(prti);
    6055                 :       18774 :     WRITE_UINT_FIELD(rowmarkId);
    6056                 :       18774 :     WRITE_ENUM_FIELD(markType, RowMarkType);
    6057                 :       18774 :     WRITE_INT_FIELD(allMarkTypes);
    6058                 :       18774 :     WRITE_ENUM_FIELD(strength, LockClauseStrength);
    6059                 :       18774 :     WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
    6060         [ +  + ]:       18774 :     WRITE_BOOL_FIELD(isParent);
    6061                 :       18774 : }
    6062                 :             : 
    6063                 :             : static void
    6064                 :         424 : _outPartitionPruneInfo(StringInfo str, const PartitionPruneInfo *node)
    6065                 :             : {
    6066                 :         424 :     WRITE_NODE_TYPE("PARTITIONPRUNEINFO");
    6067                 :             : 
    6068                 :         424 :     WRITE_BITMAPSET_FIELD(relids);
    6069                 :         424 :     WRITE_NODE_FIELD(prune_infos);
    6070                 :         424 :     WRITE_BITMAPSET_FIELD(other_subplans);
    6071                 :         424 : }
    6072                 :             : 
    6073                 :             : static void
    6074                 :         819 : _outPartitionedRelPruneInfo(StringInfo str, const PartitionedRelPruneInfo *node)
    6075                 :             : {
    6076                 :         819 :     WRITE_NODE_TYPE("PARTITIONEDRELPRUNEINFO");
    6077                 :             : 
    6078                 :         819 :     WRITE_UINT_FIELD(rtindex);
    6079                 :         819 :     WRITE_BITMAPSET_FIELD(present_parts);
    6080                 :         819 :     WRITE_INT_FIELD(nparts);
    6081                 :         819 :     WRITE_INT_ARRAY(subplan_map, node->nparts);
    6082                 :         819 :     WRITE_INT_ARRAY(subpart_map, node->nparts);
    6083                 :         819 :     WRITE_INT_ARRAY(leafpart_rti_map, node->nparts);
    6084                 :         819 :     WRITE_OID_ARRAY(relid_map, node->nparts);
    6085                 :         819 :     WRITE_NODE_FIELD(initial_pruning_steps);
    6086                 :         819 :     WRITE_NODE_FIELD(exec_pruning_steps);
    6087                 :         819 :     WRITE_BITMAPSET_FIELD(execparamids);
    6088                 :         819 : }
    6089                 :             : 
    6090                 :             : static void
    6091                 :         703 : _outPartitionPruneStepOp(StringInfo str, const PartitionPruneStepOp *node)
    6092                 :             : {
    6093                 :         703 :     WRITE_NODE_TYPE("PARTITIONPRUNESTEPOP");
    6094                 :             : 
    6095                 :         703 :     WRITE_INT_FIELD(step.step_id);
    6096                 :         703 :     WRITE_INT_FIELD(opstrategy);
    6097                 :         703 :     WRITE_NODE_FIELD(exprs);
    6098                 :         703 :     WRITE_NODE_FIELD(cmpfns);
    6099                 :         703 :     WRITE_BITMAPSET_FIELD(nullkeys);
    6100                 :         703 : }
    6101                 :             : 
    6102                 :             : static void
    6103                 :         126 : _outPartitionPruneStepCombine(StringInfo str, const PartitionPruneStepCombine *node)
    6104                 :             : {
    6105                 :         126 :     WRITE_NODE_TYPE("PARTITIONPRUNESTEPCOMBINE");
    6106                 :             : 
    6107                 :         126 :     WRITE_INT_FIELD(step.step_id);
    6108                 :         126 :     WRITE_ENUM_FIELD(combineOp, PartitionPruneCombineOp);
    6109                 :         126 :     WRITE_NODE_FIELD(source_stepids);
    6110                 :         126 : }
    6111                 :             : 
    6112                 :             : static void
    6113                 :       36774 : _outPlanInvalItem(StringInfo str, const PlanInvalItem *node)
    6114                 :             : {
    6115                 :       36774 :     WRITE_NODE_TYPE("PLANINVALITEM");
    6116                 :             : 
    6117                 :       36774 :     WRITE_INT_FIELD(cacheId);
    6118                 :       36774 :     WRITE_UINT_FIELD(hashValue);
    6119                 :       36774 : }
    6120                 :             : 
    6121                 :             : static void
    6122                 :       53813 : _outSubPlanRTInfo(StringInfo str, const SubPlanRTInfo *node)
    6123                 :             : {
    6124                 :       53813 :     WRITE_NODE_TYPE("SUBPLANRTINFO");
    6125                 :             : 
    6126                 :       53813 :     WRITE_STRING_FIELD(plan_name);
    6127                 :       53813 :     WRITE_UINT_FIELD(rtoffset);
    6128         [ +  + ]:       53813 :     WRITE_BOOL_FIELD(dummy);
    6129                 :       53813 : }
    6130                 :             : 
    6131                 :             : static void
    6132                 :       16308 : _outElidedNode(StringInfo str, const ElidedNode *node)
    6133                 :             : {
    6134                 :       16308 :     WRITE_NODE_TYPE("ELIDEDNODE");
    6135                 :             : 
    6136                 :       16308 :     WRITE_INT_FIELD(plan_node_id);
    6137                 :       16308 :     WRITE_ENUM_FIELD(elided_type, NodeTag);
    6138                 :       16308 :     WRITE_BITMAPSET_FIELD(relids);
    6139                 :       16308 : }
    6140                 :             : 
    6141                 :             : static void
    6142                 :           0 : _outForeignKeyCacheInfo(StringInfo str, const ForeignKeyCacheInfo *node)
    6143                 :             : {
    6144                 :           0 :     WRITE_NODE_TYPE("FOREIGNKEYCACHEINFO");
    6145                 :             : 
    6146                 :           0 :     WRITE_OID_FIELD(conoid);
    6147                 :           0 :     WRITE_OID_FIELD(conrelid);
    6148                 :           0 :     WRITE_OID_FIELD(confrelid);
    6149                 :           0 :     WRITE_INT_FIELD(nkeys);
    6150         [ #  # ]:           0 :     WRITE_BOOL_FIELD(conenforced);
    6151                 :           0 :     WRITE_ATTRNUMBER_ARRAY(conkey, node->nkeys);
    6152                 :           0 :     WRITE_ATTRNUMBER_ARRAY(confkey, node->nkeys);
    6153                 :           0 :     WRITE_OID_ARRAY(conpfeqop, node->nkeys);
    6154                 :           0 : }
        

Generated by: LCOV version 2.0-1