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