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