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