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