Line data Source code
1 : /*-------------------------------------------------------------------------
2 : *
3 : * equalfuncs.funcs.c
4 : * Generated node infrastructure code
5 : *
6 : * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7 : * Portions Copyright (c) 1994, Regents of the University of California
8 : *
9 : * NOTES
10 : * ******************************
11 : * *** DO NOT EDIT THIS FILE! ***
12 : * ******************************
13 : *
14 : * It has been GENERATED by src/backend/nodes/gen_node_support.pl
15 : *
16 : *-------------------------------------------------------------------------
17 : */
18 : #include "access/amapi.h"
19 : #include "access/cmptype.h"
20 : #include "access/sdir.h"
21 : #include "access/tableam.h"
22 : #include "access/tsmapi.h"
23 : #include "commands/event_trigger.h"
24 : #include "commands/trigger.h"
25 : #include "executor/tuptable.h"
26 : #include "foreign/fdwapi.h"
27 : #include "nodes/bitmapset.h"
28 : #include "nodes/execnodes.h"
29 : #include "nodes/extensible.h"
30 : #include "nodes/lockoptions.h"
31 : #include "nodes/miscnodes.h"
32 : #include "nodes/nodes.h"
33 : #include "nodes/parsenodes.h"
34 : #include "nodes/pathnodes.h"
35 : #include "nodes/plannodes.h"
36 : #include "nodes/primnodes.h"
37 : #include "nodes/replnodes.h"
38 : #include "nodes/supportnodes.h"
39 : #include "nodes/value.h"
40 : #include "utils/rel.h"
41 :
42 : static bool
43 1776748 : _equalAlias(const Alias *a, const Alias *b)
44 : {
45 1776748 : COMPARE_STRING_FIELD(aliasname);
46 1776737 : COMPARE_NODE_FIELD(colnames);
47 :
48 1776737 : return true;
49 : }
50 :
51 : static bool
52 1144880 : _equalRangeVar(const RangeVar *a, const RangeVar *b)
53 : {
54 1144880 : COMPARE_STRING_FIELD(catalogname);
55 1144880 : COMPARE_STRING_FIELD(schemaname);
56 1144830 : COMPARE_STRING_FIELD(relname);
57 1143529 : COMPARE_SCALAR_FIELD(inh);
58 1143529 : COMPARE_SCALAR_FIELD(relpersistence);
59 1143529 : COMPARE_NODE_FIELD(alias);
60 : COMPARE_LOCATION_FIELD(location);
61 :
62 1143529 : return true;
63 : }
64 :
65 : static bool
66 776 : _equalTableFunc(const TableFunc *a, const TableFunc *b)
67 : {
68 776 : COMPARE_SCALAR_FIELD(functype);
69 776 : COMPARE_NODE_FIELD(ns_uris);
70 776 : COMPARE_NODE_FIELD(ns_names);
71 776 : COMPARE_NODE_FIELD(docexpr);
72 776 : COMPARE_NODE_FIELD(rowexpr);
73 776 : COMPARE_NODE_FIELD(colnames);
74 776 : COMPARE_NODE_FIELD(coltypes);
75 776 : COMPARE_NODE_FIELD(coltypmods);
76 776 : COMPARE_NODE_FIELD(colcollations);
77 776 : COMPARE_NODE_FIELD(colexprs);
78 776 : COMPARE_NODE_FIELD(coldefexprs);
79 776 : COMPARE_NODE_FIELD(colvalexprs);
80 776 : COMPARE_NODE_FIELD(passingvalexprs);
81 776 : COMPARE_BITMAPSET_FIELD(notnulls);
82 776 : COMPARE_NODE_FIELD(plan);
83 776 : COMPARE_SCALAR_FIELD(ordinalitycol);
84 : COMPARE_LOCATION_FIELD(location);
85 :
86 776 : return true;
87 : }
88 :
89 : static bool
90 5126 : _equalIntoClause(const IntoClause *a, const IntoClause *b)
91 : {
92 5126 : COMPARE_NODE_FIELD(rel);
93 5126 : COMPARE_NODE_FIELD(colNames);
94 5126 : COMPARE_STRING_FIELD(accessMethod);
95 5126 : COMPARE_NODE_FIELD(options);
96 5126 : COMPARE_SCALAR_FIELD(onCommit);
97 5126 : COMPARE_STRING_FIELD(tableSpaceName);
98 5126 : COMPARE_NODE_FIELD(viewQuery);
99 5126 : COMPARE_SCALAR_FIELD(skipData);
100 :
101 5126 : return true;
102 : }
103 :
104 : static bool
105 12737572 : _equalVar(const Var *a, const Var *b)
106 : {
107 12737572 : COMPARE_SCALAR_FIELD(varno);
108 10422500 : COMPARE_SCALAR_FIELD(varattno);
109 9182691 : COMPARE_SCALAR_FIELD(vartype);
110 9182691 : COMPARE_SCALAR_FIELD(vartypmod);
111 9182691 : COMPARE_SCALAR_FIELD(varcollid);
112 9182691 : COMPARE_BITMAPSET_FIELD(varnullingrels);
113 9169456 : COMPARE_SCALAR_FIELD(varlevelsup);
114 9169452 : COMPARE_SCALAR_FIELD(varreturningtype);
115 : COMPARE_LOCATION_FIELD(location);
116 :
117 9169452 : return true;
118 : }
119 :
120 : static bool
121 107214 : _equalParam(const Param *a, const Param *b)
122 : {
123 107214 : COMPARE_SCALAR_FIELD(paramkind);
124 105115 : COMPARE_SCALAR_FIELD(paramid);
125 94893 : COMPARE_SCALAR_FIELD(paramtype);
126 94893 : COMPARE_SCALAR_FIELD(paramtypmod);
127 94893 : COMPARE_SCALAR_FIELD(paramcollid);
128 : COMPARE_LOCATION_FIELD(location);
129 :
130 94893 : return true;
131 : }
132 :
133 : static bool
134 80598 : _equalAggref(const Aggref *a, const Aggref *b)
135 : {
136 80598 : COMPARE_SCALAR_FIELD(aggfnoid);
137 71570 : COMPARE_SCALAR_FIELD(aggtype);
138 71060 : COMPARE_SCALAR_FIELD(aggcollid);
139 71060 : COMPARE_SCALAR_FIELD(inputcollid);
140 71060 : COMPARE_NODE_FIELD(aggargtypes);
141 71060 : COMPARE_NODE_FIELD(aggdirectargs);
142 71060 : COMPARE_NODE_FIELD(args);
143 69046 : COMPARE_NODE_FIELD(aggorder);
144 69046 : COMPARE_NODE_FIELD(aggdistinct);
145 69046 : COMPARE_NODE_FIELD(aggfilter);
146 69031 : COMPARE_SCALAR_FIELD(aggstar);
147 69031 : COMPARE_SCALAR_FIELD(aggvariadic);
148 69031 : COMPARE_SCALAR_FIELD(aggkind);
149 69031 : COMPARE_SCALAR_FIELD(agglevelsup);
150 69031 : COMPARE_SCALAR_FIELD(aggsplit);
151 69001 : COMPARE_SCALAR_FIELD(aggno);
152 69001 : COMPARE_SCALAR_FIELD(aggtransno);
153 : COMPARE_LOCATION_FIELD(location);
154 :
155 69001 : return true;
156 : }
157 :
158 : static bool
159 1100 : _equalGroupingFunc(const GroupingFunc *a, const GroupingFunc *b)
160 : {
161 1100 : COMPARE_NODE_FIELD(args);
162 1100 : COMPARE_SCALAR_FIELD(agglevelsup);
163 : COMPARE_LOCATION_FIELD(location);
164 :
165 1100 : return true;
166 : }
167 :
168 : static bool
169 6534 : _equalWindowFunc(const WindowFunc *a, const WindowFunc *b)
170 : {
171 6534 : COMPARE_SCALAR_FIELD(winfnoid);
172 5523 : COMPARE_SCALAR_FIELD(wintype);
173 5523 : COMPARE_SCALAR_FIELD(wincollid);
174 5523 : COMPARE_SCALAR_FIELD(inputcollid);
175 5523 : COMPARE_NODE_FIELD(args);
176 5435 : COMPARE_NODE_FIELD(aggfilter);
177 5426 : COMPARE_NODE_FIELD(runCondition);
178 5426 : COMPARE_SCALAR_FIELD(winref);
179 5326 : COMPARE_SCALAR_FIELD(winstar);
180 5326 : COMPARE_SCALAR_FIELD(winagg);
181 5326 : COMPARE_SCALAR_FIELD(ignore_nulls);
182 : COMPARE_LOCATION_FIELD(location);
183 :
184 5263 : return true;
185 : }
186 :
187 : static bool
188 170 : _equalWindowFuncRunCondition(const WindowFuncRunCondition *a, const WindowFuncRunCondition *b)
189 : {
190 170 : COMPARE_SCALAR_FIELD(opno);
191 170 : COMPARE_SCALAR_FIELD(inputcollid);
192 170 : COMPARE_SCALAR_FIELD(wfunc_left);
193 170 : COMPARE_NODE_FIELD(arg);
194 :
195 170 : return true;
196 : }
197 :
198 : static bool
199 530 : _equalMergeSupportFunc(const MergeSupportFunc *a, const MergeSupportFunc *b)
200 : {
201 530 : COMPARE_SCALAR_FIELD(msftype);
202 530 : COMPARE_SCALAR_FIELD(msfcollid);
203 : COMPARE_LOCATION_FIELD(location);
204 :
205 530 : return true;
206 : }
207 :
208 : static bool
209 20615 : _equalSubscriptingRef(const SubscriptingRef *a, const SubscriptingRef *b)
210 : {
211 20615 : COMPARE_SCALAR_FIELD(refcontainertype);
212 20615 : COMPARE_SCALAR_FIELD(refelemtype);
213 20615 : COMPARE_SCALAR_FIELD(refrestype);
214 20615 : COMPARE_SCALAR_FIELD(reftypmod);
215 20615 : COMPARE_SCALAR_FIELD(refcollid);
216 20615 : COMPARE_NODE_FIELD(refupperindexpr);
217 20549 : COMPARE_NODE_FIELD(reflowerindexpr);
218 20549 : COMPARE_NODE_FIELD(refexpr);
219 20346 : COMPARE_NODE_FIELD(refassgnexpr);
220 :
221 20346 : return true;
222 : }
223 :
224 : static bool
225 558777 : _equalFuncExpr(const FuncExpr *a, const FuncExpr *b)
226 : {
227 558777 : COMPARE_SCALAR_FIELD(funcid);
228 556938 : COMPARE_SCALAR_FIELD(funcresulttype);
229 556818 : COMPARE_SCALAR_FIELD(funcretset);
230 556818 : COMPARE_SCALAR_FIELD(funcvariadic);
231 556818 : COMPARE_SCALAR_FIELD(funccollid);
232 556818 : COMPARE_SCALAR_FIELD(inputcollid);
233 556818 : COMPARE_NODE_FIELD(args);
234 : COMPARE_LOCATION_FIELD(location);
235 :
236 554662 : return true;
237 : }
238 :
239 : static bool
240 106478 : _equalNamedArgExpr(const NamedArgExpr *a, const NamedArgExpr *b)
241 : {
242 106478 : COMPARE_NODE_FIELD(arg);
243 106478 : COMPARE_STRING_FIELD(name);
244 106478 : COMPARE_SCALAR_FIELD(argnumber);
245 : COMPARE_LOCATION_FIELD(location);
246 :
247 106478 : return true;
248 : }
249 :
250 : static bool
251 1045688 : _equalOpExpr(const OpExpr *a, const OpExpr *b)
252 : {
253 1045688 : COMPARE_SCALAR_FIELD(opno);
254 954482 : if (a->opfuncid != b->opfuncid && a->opfuncid != 0 && b->opfuncid != 0)
255 0 : return false;
256 954482 : COMPARE_SCALAR_FIELD(opresulttype);
257 954482 : COMPARE_SCALAR_FIELD(opretset);
258 954482 : COMPARE_SCALAR_FIELD(opcollid);
259 954482 : COMPARE_SCALAR_FIELD(inputcollid);
260 954481 : COMPARE_NODE_FIELD(args);
261 : COMPARE_LOCATION_FIELD(location);
262 :
263 852767 : return true;
264 : }
265 :
266 : static bool
267 1652 : _equalDistinctExpr(const DistinctExpr *a, const DistinctExpr *b)
268 : {
269 1652 : COMPARE_SCALAR_FIELD(opno);
270 1652 : if (a->opfuncid != b->opfuncid && a->opfuncid != 0 && b->opfuncid != 0)
271 0 : return false;
272 1652 : COMPARE_SCALAR_FIELD(opresulttype);
273 1652 : COMPARE_SCALAR_FIELD(opretset);
274 1652 : COMPARE_SCALAR_FIELD(opcollid);
275 1652 : COMPARE_SCALAR_FIELD(inputcollid);
276 1652 : COMPARE_NODE_FIELD(args);
277 : COMPARE_LOCATION_FIELD(location);
278 :
279 1652 : return true;
280 : }
281 :
282 : static bool
283 309 : _equalNullIfExpr(const NullIfExpr *a, const NullIfExpr *b)
284 : {
285 309 : COMPARE_SCALAR_FIELD(opno);
286 309 : if (a->opfuncid != b->opfuncid && a->opfuncid != 0 && b->opfuncid != 0)
287 0 : return false;
288 309 : COMPARE_SCALAR_FIELD(opresulttype);
289 309 : COMPARE_SCALAR_FIELD(opretset);
290 309 : COMPARE_SCALAR_FIELD(opcollid);
291 309 : COMPARE_SCALAR_FIELD(inputcollid);
292 309 : COMPARE_NODE_FIELD(args);
293 : COMPARE_LOCATION_FIELD(location);
294 :
295 309 : return true;
296 : }
297 :
298 : static bool
299 43761 : _equalScalarArrayOpExpr(const ScalarArrayOpExpr *a, const ScalarArrayOpExpr *b)
300 : {
301 43761 : COMPARE_SCALAR_FIELD(opno);
302 43242 : if (a->opfuncid != b->opfuncid && a->opfuncid != 0 && b->opfuncid != 0)
303 0 : return false;
304 43242 : if (a->hashfuncid != b->hashfuncid && a->hashfuncid != 0 && b->hashfuncid != 0)
305 0 : return false;
306 43242 : if (a->negfuncid != b->negfuncid && a->negfuncid != 0 && b->negfuncid != 0)
307 0 : return false;
308 43242 : COMPARE_SCALAR_FIELD(useOr);
309 43242 : COMPARE_SCALAR_FIELD(inputcollid);
310 43242 : COMPARE_NODE_FIELD(args);
311 : COMPARE_LOCATION_FIELD(location);
312 :
313 43182 : return true;
314 : }
315 :
316 : static bool
317 492208 : _equalBoolExpr(const BoolExpr *a, const BoolExpr *b)
318 : {
319 492208 : COMPARE_SCALAR_FIELD(boolop);
320 492208 : COMPARE_NODE_FIELD(args);
321 : COMPARE_LOCATION_FIELD(location);
322 :
323 491057 : return true;
324 : }
325 :
326 : static bool
327 136416 : _equalSubLink(const SubLink *a, const SubLink *b)
328 : {
329 136416 : COMPARE_SCALAR_FIELD(subLinkType);
330 136416 : COMPARE_SCALAR_FIELD(subLinkId);
331 136416 : COMPARE_NODE_FIELD(testexpr);
332 136406 : COMPARE_NODE_FIELD(operName);
333 136406 : COMPARE_NODE_FIELD(subselect);
334 : COMPARE_LOCATION_FIELD(location);
335 :
336 136390 : return true;
337 : }
338 :
339 : static bool
340 5466 : _equalSubPlan(const SubPlan *a, const SubPlan *b)
341 : {
342 5466 : COMPARE_SCALAR_FIELD(subLinkType);
343 5466 : COMPARE_NODE_FIELD(testexpr);
344 5466 : COMPARE_NODE_FIELD(paramIds);
345 5466 : COMPARE_SCALAR_FIELD(plan_id);
346 5326 : COMPARE_STRING_FIELD(plan_name);
347 5326 : COMPARE_SCALAR_FIELD(firstColType);
348 5326 : COMPARE_SCALAR_FIELD(firstColTypmod);
349 5326 : COMPARE_SCALAR_FIELD(firstColCollation);
350 5326 : COMPARE_SCALAR_FIELD(isInitPlan);
351 5326 : COMPARE_SCALAR_FIELD(useHashTable);
352 5326 : COMPARE_SCALAR_FIELD(unknownEqFalse);
353 5326 : COMPARE_SCALAR_FIELD(parallel_safe);
354 5326 : COMPARE_NODE_FIELD(setParam);
355 5326 : COMPARE_NODE_FIELD(parParam);
356 5326 : COMPARE_NODE_FIELD(args);
357 5326 : COMPARE_SCALAR_FIELD(disabled_nodes);
358 5326 : COMPARE_SCALAR_FIELD(startup_cost);
359 5326 : COMPARE_SCALAR_FIELD(per_call_cost);
360 :
361 5326 : return true;
362 : }
363 :
364 : static bool
365 0 : _equalAlternativeSubPlan(const AlternativeSubPlan *a, const AlternativeSubPlan *b)
366 : {
367 0 : COMPARE_NODE_FIELD(subplans);
368 :
369 0 : return true;
370 : }
371 :
372 : static bool
373 28851 : _equalFieldSelect(const FieldSelect *a, const FieldSelect *b)
374 : {
375 28851 : COMPARE_NODE_FIELD(arg);
376 28841 : COMPARE_SCALAR_FIELD(fieldnum);
377 28761 : COMPARE_SCALAR_FIELD(resulttype);
378 28761 : COMPARE_SCALAR_FIELD(resulttypmod);
379 28761 : COMPARE_SCALAR_FIELD(resultcollid);
380 :
381 28761 : return true;
382 : }
383 :
384 : static bool
385 514 : _equalFieldStore(const FieldStore *a, const FieldStore *b)
386 : {
387 514 : COMPARE_NODE_FIELD(arg);
388 514 : COMPARE_NODE_FIELD(newvals);
389 514 : COMPARE_NODE_FIELD(fieldnums);
390 514 : COMPARE_SCALAR_FIELD(resulttype);
391 :
392 514 : return true;
393 : }
394 :
395 : static bool
396 221902 : _equalRelabelType(const RelabelType *a, const RelabelType *b)
397 : {
398 221902 : COMPARE_NODE_FIELD(arg);
399 217584 : COMPARE_SCALAR_FIELD(resulttype);
400 217584 : COMPARE_SCALAR_FIELD(resulttypmod);
401 217584 : COMPARE_SCALAR_FIELD(resultcollid);
402 : COMPARE_LOCATION_FIELD(location);
403 :
404 217584 : return true;
405 : }
406 :
407 : static bool
408 39732 : _equalCoerceViaIO(const CoerceViaIO *a, const CoerceViaIO *b)
409 : {
410 39732 : COMPARE_NODE_FIELD(arg);
411 39635 : COMPARE_SCALAR_FIELD(resulttype);
412 39635 : COMPARE_SCALAR_FIELD(resultcollid);
413 : COMPARE_LOCATION_FIELD(location);
414 :
415 39635 : return true;
416 : }
417 :
418 : static bool
419 7040 : _equalArrayCoerceExpr(const ArrayCoerceExpr *a, const ArrayCoerceExpr *b)
420 : {
421 7040 : COMPARE_NODE_FIELD(arg);
422 7040 : COMPARE_NODE_FIELD(elemexpr);
423 7040 : COMPARE_SCALAR_FIELD(resulttype);
424 7040 : COMPARE_SCALAR_FIELD(resulttypmod);
425 7040 : COMPARE_SCALAR_FIELD(resultcollid);
426 : COMPARE_LOCATION_FIELD(location);
427 :
428 7040 : return true;
429 : }
430 :
431 : static bool
432 86 : _equalConvertRowtypeExpr(const ConvertRowtypeExpr *a, const ConvertRowtypeExpr *b)
433 : {
434 86 : COMPARE_NODE_FIELD(arg);
435 86 : COMPARE_SCALAR_FIELD(resulttype);
436 : COMPARE_LOCATION_FIELD(location);
437 :
438 86 : return true;
439 : }
440 :
441 : static bool
442 12860 : _equalCollateExpr(const CollateExpr *a, const CollateExpr *b)
443 : {
444 12860 : COMPARE_NODE_FIELD(arg);
445 12808 : COMPARE_SCALAR_FIELD(collOid);
446 : COMPARE_LOCATION_FIELD(location);
447 :
448 12808 : return true;
449 : }
450 :
451 : static bool
452 129583 : _equalCaseExpr(const CaseExpr *a, const CaseExpr *b)
453 : {
454 129583 : COMPARE_SCALAR_FIELD(casetype);
455 129583 : COMPARE_SCALAR_FIELD(casecollid);
456 129573 : COMPARE_NODE_FIELD(arg);
457 129538 : COMPARE_NODE_FIELD(args);
458 129470 : COMPARE_NODE_FIELD(defresult);
459 : COMPARE_LOCATION_FIELD(location);
460 :
461 129470 : return true;
462 : }
463 :
464 : static bool
465 242103 : _equalCaseWhen(const CaseWhen *a, const CaseWhen *b)
466 : {
467 242103 : COMPARE_NODE_FIELD(expr);
468 242035 : COMPARE_NODE_FIELD(result);
469 : COMPARE_LOCATION_FIELD(location);
470 :
471 242035 : return true;
472 : }
473 :
474 : static bool
475 36877 : _equalCaseTestExpr(const CaseTestExpr *a, const CaseTestExpr *b)
476 : {
477 36877 : COMPARE_SCALAR_FIELD(typeId);
478 36877 : COMPARE_SCALAR_FIELD(typeMod);
479 36877 : COMPARE_SCALAR_FIELD(collation);
480 :
481 36877 : return true;
482 : }
483 :
484 : static bool
485 33601 : _equalArrayExpr(const ArrayExpr *a, const ArrayExpr *b)
486 : {
487 33601 : COMPARE_SCALAR_FIELD(array_typeid);
488 33601 : COMPARE_SCALAR_FIELD(array_collid);
489 33601 : COMPARE_SCALAR_FIELD(element_typeid);
490 33601 : COMPARE_NODE_FIELD(elements);
491 33601 : COMPARE_SCALAR_FIELD(multidims);
492 : COMPARE_LOCATION_FIELD(list_start);
493 : COMPARE_LOCATION_FIELD(list_end);
494 : COMPARE_LOCATION_FIELD(location);
495 :
496 33601 : return true;
497 : }
498 :
499 : static bool
500 15109 : _equalRowExpr(const RowExpr *a, const RowExpr *b)
501 : {
502 15109 : COMPARE_NODE_FIELD(args);
503 15109 : COMPARE_SCALAR_FIELD(row_typeid);
504 15109 : COMPARE_NODE_FIELD(colnames);
505 : COMPARE_LOCATION_FIELD(location);
506 :
507 15109 : return true;
508 : }
509 :
510 : static bool
511 394 : _equalRowCompareExpr(const RowCompareExpr *a, const RowCompareExpr *b)
512 : {
513 394 : COMPARE_SCALAR_FIELD(cmptype);
514 344 : COMPARE_NODE_FIELD(opnos);
515 344 : COMPARE_NODE_FIELD(opfamilies);
516 344 : COMPARE_NODE_FIELD(inputcollids);
517 344 : COMPARE_NODE_FIELD(largs);
518 344 : COMPARE_NODE_FIELD(rargs);
519 :
520 344 : return true;
521 : }
522 :
523 : static bool
524 11869 : _equalCoalesceExpr(const CoalesceExpr *a, const CoalesceExpr *b)
525 : {
526 11869 : COMPARE_SCALAR_FIELD(coalescetype);
527 11867 : COMPARE_SCALAR_FIELD(coalescecollid);
528 11867 : COMPARE_NODE_FIELD(args);
529 : COMPARE_LOCATION_FIELD(location);
530 :
531 11132 : return true;
532 : }
533 :
534 : static bool
535 783 : _equalMinMaxExpr(const MinMaxExpr *a, const MinMaxExpr *b)
536 : {
537 783 : COMPARE_SCALAR_FIELD(minmaxtype);
538 783 : COMPARE_SCALAR_FIELD(minmaxcollid);
539 783 : COMPARE_SCALAR_FIELD(inputcollid);
540 783 : COMPARE_SCALAR_FIELD(op);
541 783 : COMPARE_NODE_FIELD(args);
542 : COMPARE_LOCATION_FIELD(location);
543 :
544 783 : return true;
545 : }
546 :
547 : static bool
548 9771 : _equalSQLValueFunction(const SQLValueFunction *a, const SQLValueFunction *b)
549 : {
550 9771 : COMPARE_SCALAR_FIELD(op);
551 9721 : COMPARE_SCALAR_FIELD(type);
552 9721 : COMPARE_SCALAR_FIELD(typmod);
553 : COMPARE_LOCATION_FIELD(location);
554 :
555 9721 : return true;
556 : }
557 :
558 : static bool
559 1796 : _equalXmlExpr(const XmlExpr *a, const XmlExpr *b)
560 : {
561 1796 : COMPARE_SCALAR_FIELD(op);
562 1796 : COMPARE_STRING_FIELD(name);
563 1796 : COMPARE_NODE_FIELD(named_args);
564 1796 : COMPARE_NODE_FIELD(arg_names);
565 1796 : COMPARE_NODE_FIELD(args);
566 1796 : COMPARE_SCALAR_FIELD(xmloption);
567 1796 : COMPARE_SCALAR_FIELD(indent);
568 1796 : COMPARE_SCALAR_FIELD(type);
569 1796 : COMPARE_SCALAR_FIELD(typmod);
570 : COMPARE_LOCATION_FIELD(location);
571 :
572 1796 : return true;
573 : }
574 :
575 : static bool
576 21336 : _equalJsonFormat(const JsonFormat *a, const JsonFormat *b)
577 : {
578 21336 : COMPARE_SCALAR_FIELD(format_type);
579 21336 : COMPARE_SCALAR_FIELD(encoding);
580 : COMPARE_LOCATION_FIELD(location);
581 :
582 21336 : return true;
583 : }
584 :
585 : static bool
586 7816 : _equalJsonReturning(const JsonReturning *a, const JsonReturning *b)
587 : {
588 7816 : COMPARE_NODE_FIELD(format);
589 7816 : COMPARE_SCALAR_FIELD(typid);
590 7816 : COMPARE_SCALAR_FIELD(typmod);
591 :
592 7816 : return true;
593 : }
594 :
595 : static bool
596 8000 : _equalJsonValueExpr(const JsonValueExpr *a, const JsonValueExpr *b)
597 : {
598 8000 : COMPARE_NODE_FIELD(raw_expr);
599 8000 : COMPARE_NODE_FIELD(formatted_expr);
600 8000 : COMPARE_NODE_FIELD(format);
601 :
602 8000 : return true;
603 : }
604 :
605 : static bool
606 1788 : _equalJsonConstructorExpr(const JsonConstructorExpr *a, const JsonConstructorExpr *b)
607 : {
608 1788 : COMPARE_SCALAR_FIELD(type);
609 1788 : COMPARE_NODE_FIELD(args);
610 1788 : COMPARE_NODE_FIELD(func);
611 1788 : COMPARE_NODE_FIELD(coercion);
612 1788 : COMPARE_NODE_FIELD(returning);
613 1788 : COMPARE_SCALAR_FIELD(absent_on_null);
614 1788 : COMPARE_SCALAR_FIELD(unique);
615 : COMPARE_LOCATION_FIELD(location);
616 :
617 1788 : return true;
618 : }
619 :
620 : static bool
621 1088 : _equalJsonIsPredicate(const JsonIsPredicate *a, const JsonIsPredicate *b)
622 : {
623 1088 : COMPARE_NODE_FIELD(expr);
624 1088 : COMPARE_NODE_FIELD(format);
625 1088 : COMPARE_SCALAR_FIELD(item_type);
626 1088 : COMPARE_SCALAR_FIELD(unique_keys);
627 1088 : COMPARE_SCALAR_FIELD(exprBaseType);
628 : COMPARE_LOCATION_FIELD(location);
629 :
630 1088 : return true;
631 : }
632 :
633 : static bool
634 7168 : _equalJsonBehavior(const JsonBehavior *a, const JsonBehavior *b)
635 : {
636 7168 : COMPARE_SCALAR_FIELD(btype);
637 7168 : COMPARE_NODE_FIELD(expr);
638 7168 : COMPARE_SCALAR_FIELD(coerce);
639 : COMPARE_LOCATION_FIELD(location);
640 :
641 7168 : return true;
642 : }
643 :
644 : static bool
645 3216 : _equalJsonExpr(const JsonExpr *a, const JsonExpr *b)
646 : {
647 3216 : COMPARE_SCALAR_FIELD(op);
648 3216 : COMPARE_STRING_FIELD(column_name);
649 3216 : COMPARE_NODE_FIELD(formatted_expr);
650 3216 : COMPARE_NODE_FIELD(format);
651 3216 : COMPARE_NODE_FIELD(path_spec);
652 3216 : COMPARE_NODE_FIELD(returning);
653 3216 : COMPARE_NODE_FIELD(passing_names);
654 3216 : COMPARE_NODE_FIELD(passing_values);
655 3216 : COMPARE_NODE_FIELD(on_empty);
656 3216 : COMPARE_NODE_FIELD(on_error);
657 3216 : COMPARE_SCALAR_FIELD(use_io_coercion);
658 3216 : COMPARE_SCALAR_FIELD(use_json_coercion);
659 3216 : COMPARE_SCALAR_FIELD(wrapper);
660 3216 : COMPARE_SCALAR_FIELD(omit_quotes);
661 3216 : COMPARE_SCALAR_FIELD(collation);
662 : COMPARE_LOCATION_FIELD(location);
663 :
664 3216 : return true;
665 : }
666 :
667 : static bool
668 744 : _equalJsonTablePath(const JsonTablePath *a, const JsonTablePath *b)
669 : {
670 744 : COMPARE_NODE_FIELD(value);
671 744 : COMPARE_STRING_FIELD(name);
672 :
673 744 : return true;
674 : }
675 :
676 : static bool
677 744 : _equalJsonTablePathScan(const JsonTablePathScan *a, const JsonTablePathScan *b)
678 : {
679 744 : COMPARE_NODE_FIELD(path);
680 744 : COMPARE_SCALAR_FIELD(errorOnError);
681 744 : COMPARE_NODE_FIELD(child);
682 744 : COMPARE_SCALAR_FIELD(colMin);
683 744 : COMPARE_SCALAR_FIELD(colMax);
684 :
685 744 : return true;
686 : }
687 :
688 : static bool
689 80 : _equalJsonTableSiblingJoin(const JsonTableSiblingJoin *a, const JsonTableSiblingJoin *b)
690 : {
691 80 : COMPARE_NODE_FIELD(lplan);
692 80 : COMPARE_NODE_FIELD(rplan);
693 :
694 80 : return true;
695 : }
696 :
697 : static bool
698 52721 : _equalNullTest(const NullTest *a, const NullTest *b)
699 : {
700 52721 : COMPARE_NODE_FIELD(arg);
701 51760 : COMPARE_SCALAR_FIELD(nulltesttype);
702 51695 : COMPARE_SCALAR_FIELD(argisrow);
703 : COMPARE_LOCATION_FIELD(location);
704 :
705 51695 : return true;
706 : }
707 :
708 : static bool
709 3446 : _equalBooleanTest(const BooleanTest *a, const BooleanTest *b)
710 : {
711 3446 : COMPARE_NODE_FIELD(arg);
712 3446 : COMPARE_SCALAR_FIELD(booltesttype);
713 : COMPARE_LOCATION_FIELD(location);
714 :
715 3426 : return true;
716 : }
717 :
718 : static bool
719 3926 : _equalMergeAction(const MergeAction *a, const MergeAction *b)
720 : {
721 3926 : COMPARE_SCALAR_FIELD(matchKind);
722 3926 : COMPARE_SCALAR_FIELD(commandType);
723 3926 : COMPARE_SCALAR_FIELD(override);
724 3926 : COMPARE_NODE_FIELD(qual);
725 3926 : COMPARE_NODE_FIELD(targetList);
726 3926 : COMPARE_NODE_FIELD(updateColnos);
727 :
728 3926 : return true;
729 : }
730 :
731 : static bool
732 45508 : _equalCoerceToDomain(const CoerceToDomain *a, const CoerceToDomain *b)
733 : {
734 45508 : COMPARE_NODE_FIELD(arg);
735 45053 : COMPARE_SCALAR_FIELD(resulttype);
736 45053 : COMPARE_SCALAR_FIELD(resulttypmod);
737 45053 : COMPARE_SCALAR_FIELD(resultcollid);
738 : COMPARE_LOCATION_FIELD(location);
739 :
740 45053 : return true;
741 : }
742 :
743 : static bool
744 0 : _equalCoerceToDomainValue(const CoerceToDomainValue *a, const CoerceToDomainValue *b)
745 : {
746 0 : COMPARE_SCALAR_FIELD(typeId);
747 0 : COMPARE_SCALAR_FIELD(typeMod);
748 0 : COMPARE_SCALAR_FIELD(collation);
749 : COMPARE_LOCATION_FIELD(location);
750 :
751 0 : return true;
752 : }
753 :
754 : static bool
755 2018 : _equalSetToDefault(const SetToDefault *a, const SetToDefault *b)
756 : {
757 2018 : COMPARE_SCALAR_FIELD(typeId);
758 2018 : COMPARE_SCALAR_FIELD(typeMod);
759 2018 : COMPARE_SCALAR_FIELD(collation);
760 : COMPARE_LOCATION_FIELD(location);
761 :
762 2018 : return true;
763 : }
764 :
765 : static bool
766 656 : _equalCurrentOfExpr(const CurrentOfExpr *a, const CurrentOfExpr *b)
767 : {
768 656 : COMPARE_SCALAR_FIELD(cvarno);
769 656 : COMPARE_STRING_FIELD(cursor_name);
770 656 : COMPARE_SCALAR_FIELD(cursor_param);
771 :
772 656 : return true;
773 : }
774 :
775 : static bool
776 596 : _equalNextValueExpr(const NextValueExpr *a, const NextValueExpr *b)
777 : {
778 596 : COMPARE_SCALAR_FIELD(seqid);
779 596 : COMPARE_SCALAR_FIELD(typeId);
780 :
781 596 : return true;
782 : }
783 :
784 : static bool
785 3040 : _equalInferenceElem(const InferenceElem *a, const InferenceElem *b)
786 : {
787 3040 : COMPARE_NODE_FIELD(expr);
788 3040 : COMPARE_SCALAR_FIELD(infercollid);
789 3040 : COMPARE_SCALAR_FIELD(inferopclass);
790 :
791 3040 : return true;
792 : }
793 :
794 : static bool
795 552 : _equalReturningExpr(const ReturningExpr *a, const ReturningExpr *b)
796 : {
797 552 : COMPARE_SCALAR_FIELD(retlevelsup);
798 552 : COMPARE_SCALAR_FIELD(retold);
799 552 : COMPARE_NODE_FIELD(retexpr);
800 :
801 552 : return true;
802 : }
803 :
804 : static bool
805 18 : _equalGraphLabelRef(const GraphLabelRef *a, const GraphLabelRef *b)
806 : {
807 18 : COMPARE_SCALAR_FIELD(labelid);
808 : COMPARE_LOCATION_FIELD(location);
809 :
810 14 : return true;
811 : }
812 :
813 : static bool
814 12 : _equalGraphPropertyRef(const GraphPropertyRef *a, const GraphPropertyRef *b)
815 : {
816 12 : COMPARE_STRING_FIELD(elvarname);
817 12 : COMPARE_SCALAR_FIELD(propid);
818 12 : COMPARE_SCALAR_FIELD(typeId);
819 12 : COMPARE_SCALAR_FIELD(typmod);
820 12 : COMPARE_SCALAR_FIELD(collation);
821 : COMPARE_LOCATION_FIELD(location);
822 :
823 12 : return true;
824 : }
825 :
826 : static bool
827 2144840 : _equalTargetEntry(const TargetEntry *a, const TargetEntry *b)
828 : {
829 2144840 : COMPARE_NODE_FIELD(expr);
830 2140935 : COMPARE_SCALAR_FIELD(resno);
831 2140935 : COMPARE_STRING_FIELD(resname);
832 2140935 : COMPARE_SCALAR_FIELD(ressortgroupref);
833 2140904 : COMPARE_SCALAR_FIELD(resorigtbl);
834 2140904 : COMPARE_SCALAR_FIELD(resorigcol);
835 2140904 : COMPARE_SCALAR_FIELD(resjunk);
836 :
837 2140904 : return true;
838 : }
839 :
840 : static bool
841 715058 : _equalRangeTblRef(const RangeTblRef *a, const RangeTblRef *b)
842 : {
843 715058 : COMPARE_SCALAR_FIELD(rtindex);
844 :
845 715058 : return true;
846 : }
847 :
848 : static bool
849 256154 : _equalJoinExpr(const JoinExpr *a, const JoinExpr *b)
850 : {
851 256154 : COMPARE_SCALAR_FIELD(jointype);
852 256154 : COMPARE_SCALAR_FIELD(isNatural);
853 256154 : COMPARE_NODE_FIELD(larg);
854 256154 : COMPARE_NODE_FIELD(rarg);
855 256154 : COMPARE_NODE_FIELD(usingClause);
856 256154 : COMPARE_NODE_FIELD(join_using_alias);
857 256154 : COMPARE_NODE_FIELD(quals);
858 256154 : COMPARE_NODE_FIELD(alias);
859 256154 : COMPARE_SCALAR_FIELD(rtindex);
860 :
861 256154 : return true;
862 : }
863 :
864 : static bool
865 745897 : _equalFromExpr(const FromExpr *a, const FromExpr *b)
866 : {
867 745897 : COMPARE_NODE_FIELD(fromlist);
868 745897 : COMPARE_NODE_FIELD(quals);
869 :
870 745849 : return true;
871 : }
872 :
873 : static bool
874 2992 : _equalOnConflictExpr(const OnConflictExpr *a, const OnConflictExpr *b)
875 : {
876 2992 : COMPARE_SCALAR_FIELD(action);
877 2992 : COMPARE_NODE_FIELD(arbiterElems);
878 2992 : COMPARE_NODE_FIELD(arbiterWhere);
879 2992 : COMPARE_SCALAR_FIELD(constraint);
880 2992 : COMPARE_SCALAR_FIELD(lockStrength);
881 2992 : COMPARE_NODE_FIELD(onConflictSet);
882 2992 : COMPARE_NODE_FIELD(onConflictWhere);
883 2992 : COMPARE_SCALAR_FIELD(exclRelIndex);
884 2992 : COMPARE_NODE_FIELD(exclRelTlist);
885 :
886 2992 : return true;
887 : }
888 :
889 : static bool
890 1646 : _equalForPortionOfExpr(const ForPortionOfExpr *a, const ForPortionOfExpr *b)
891 : {
892 1646 : COMPARE_NODE_FIELD(rangeVar);
893 1646 : COMPARE_STRING_FIELD(range_name);
894 1646 : COMPARE_NODE_FIELD(targetFrom);
895 1646 : COMPARE_NODE_FIELD(targetTo);
896 1646 : COMPARE_NODE_FIELD(targetRange);
897 1646 : COMPARE_SCALAR_FIELD(rangeType);
898 1646 : COMPARE_SCALAR_FIELD(isDomain);
899 1646 : COMPARE_NODE_FIELD(overlapsExpr);
900 1646 : COMPARE_NODE_FIELD(rangeTargetList);
901 1646 : COMPARE_SCALAR_FIELD(withoutPortionProc);
902 : COMPARE_LOCATION_FIELD(location);
903 : COMPARE_LOCATION_FIELD(targetLocation);
904 :
905 1646 : return true;
906 : }
907 :
908 : static bool
909 1231311 : _equalQuery(const Query *a, const Query *b)
910 : {
911 1231311 : COMPARE_SCALAR_FIELD(commandType);
912 1231311 : COMPARE_SCALAR_FIELD(querySource);
913 1231311 : COMPARE_SCALAR_FIELD(canSetTag);
914 1231311 : COMPARE_NODE_FIELD(utilityStmt);
915 1231311 : COMPARE_SCALAR_FIELD(resultRelation);
916 1231311 : COMPARE_NODE_FIELD(forPortionOf);
917 1231311 : COMPARE_SCALAR_FIELD(hasAggs);
918 1231311 : COMPARE_SCALAR_FIELD(hasWindowFuncs);
919 1231311 : COMPARE_SCALAR_FIELD(hasTargetSRFs);
920 1231311 : COMPARE_SCALAR_FIELD(hasSubLinks);
921 1231307 : COMPARE_SCALAR_FIELD(hasDistinctOn);
922 1231307 : COMPARE_SCALAR_FIELD(hasRecursive);
923 1231307 : COMPARE_SCALAR_FIELD(hasModifyingCTE);
924 1231307 : COMPARE_SCALAR_FIELD(hasForUpdate);
925 1231307 : COMPARE_SCALAR_FIELD(hasRowSecurity);
926 1231307 : COMPARE_SCALAR_FIELD(hasGroupRTE);
927 1231305 : COMPARE_SCALAR_FIELD(isReturn);
928 1231305 : COMPARE_NODE_FIELD(cteList);
929 1231301 : COMPARE_NODE_FIELD(rtable);
930 1231257 : COMPARE_NODE_FIELD(rteperminfos);
931 1231224 : COMPARE_NODE_FIELD(jointree);
932 1231176 : COMPARE_NODE_FIELD(mergeActionList);
933 1231176 : COMPARE_SCALAR_FIELD(mergeTargetRelation);
934 1231176 : COMPARE_NODE_FIELD(mergeJoinCondition);
935 1231176 : COMPARE_NODE_FIELD(targetList);
936 1231145 : COMPARE_SCALAR_FIELD(override);
937 1231145 : COMPARE_NODE_FIELD(onConflict);
938 1231145 : COMPARE_STRING_FIELD(returningOldAlias);
939 1231145 : COMPARE_STRING_FIELD(returningNewAlias);
940 1231145 : COMPARE_NODE_FIELD(returningList);
941 1231145 : COMPARE_NODE_FIELD(groupClause);
942 1231145 : COMPARE_SCALAR_FIELD(groupDistinct);
943 1231145 : COMPARE_SCALAR_FIELD(groupByAll);
944 1231145 : COMPARE_NODE_FIELD(groupingSets);
945 1231145 : COMPARE_NODE_FIELD(havingQual);
946 1231145 : COMPARE_NODE_FIELD(windowClause);
947 1231125 : COMPARE_NODE_FIELD(distinctClause);
948 1231125 : COMPARE_NODE_FIELD(sortClause);
949 1231125 : COMPARE_NODE_FIELD(limitOffset);
950 1231125 : COMPARE_NODE_FIELD(limitCount);
951 1231125 : COMPARE_SCALAR_FIELD(limitOption);
952 1231125 : COMPARE_NODE_FIELD(rowMarks);
953 1231125 : COMPARE_NODE_FIELD(setOperations);
954 1231125 : COMPARE_NODE_FIELD(constraintDeps);
955 1231125 : COMPARE_NODE_FIELD(withCheckOptions);
956 : COMPARE_LOCATION_FIELD(stmt_location);
957 : COMPARE_LOCATION_FIELD(stmt_len);
958 :
959 1231125 : return true;
960 : }
961 :
962 : static bool
963 958880 : _equalTypeName(const TypeName *a, const TypeName *b)
964 : {
965 958880 : COMPARE_NODE_FIELD(names);
966 958880 : COMPARE_SCALAR_FIELD(typeOid);
967 958880 : COMPARE_SCALAR_FIELD(setof);
968 958880 : COMPARE_SCALAR_FIELD(pct_type);
969 958880 : COMPARE_NODE_FIELD(typmods);
970 958880 : COMPARE_SCALAR_FIELD(typemod);
971 958880 : COMPARE_NODE_FIELD(arrayBounds);
972 : COMPARE_LOCATION_FIELD(location);
973 :
974 958880 : return true;
975 : }
976 :
977 : static bool
978 2770738 : _equalColumnRef(const ColumnRef *a, const ColumnRef *b)
979 : {
980 2770738 : COMPARE_NODE_FIELD(fields);
981 : COMPARE_LOCATION_FIELD(location);
982 :
983 2770710 : return true;
984 : }
985 :
986 : static bool
987 62868 : _equalParamRef(const ParamRef *a, const ParamRef *b)
988 : {
989 62868 : COMPARE_SCALAR_FIELD(number);
990 : COMPARE_LOCATION_FIELD(location);
991 :
992 62868 : return true;
993 : }
994 :
995 : static bool
996 873466 : _equalA_Expr(const A_Expr *a, const A_Expr *b)
997 : {
998 873466 : COMPARE_SCALAR_FIELD(kind);
999 873466 : COMPARE_NODE_FIELD(name);
1000 873466 : COMPARE_NODE_FIELD(lexpr);
1001 873458 : COMPARE_NODE_FIELD(rexpr);
1002 : COMPARE_LOCATION_FIELD(rexpr_list_start);
1003 : COMPARE_LOCATION_FIELD(rexpr_list_end);
1004 : COMPARE_LOCATION_FIELD(location);
1005 :
1006 873458 : return true;
1007 : }
1008 :
1009 : static bool
1010 472564 : _equalTypeCast(const TypeCast *a, const TypeCast *b)
1011 : {
1012 472564 : COMPARE_NODE_FIELD(arg);
1013 472564 : COMPARE_NODE_FIELD(typeName);
1014 : COMPARE_LOCATION_FIELD(location);
1015 :
1016 472564 : return true;
1017 : }
1018 :
1019 : static bool
1020 15442 : _equalCollateClause(const CollateClause *a, const CollateClause *b)
1021 : {
1022 15442 : COMPARE_NODE_FIELD(arg);
1023 15442 : COMPARE_NODE_FIELD(collname);
1024 : COMPARE_LOCATION_FIELD(location);
1025 :
1026 15442 : return true;
1027 : }
1028 :
1029 : static bool
1030 57822 : _equalRoleSpec(const RoleSpec *a, const RoleSpec *b)
1031 : {
1032 57822 : COMPARE_SCALAR_FIELD(roletype);
1033 57822 : COMPARE_STRING_FIELD(rolename);
1034 : COMPARE_LOCATION_FIELD(location);
1035 :
1036 57822 : return true;
1037 : }
1038 :
1039 : static bool
1040 546038 : _equalFuncCall(const FuncCall *a, const FuncCall *b)
1041 : {
1042 546038 : COMPARE_NODE_FIELD(funcname);
1043 546038 : COMPARE_NODE_FIELD(args);
1044 546038 : COMPARE_NODE_FIELD(agg_order);
1045 546038 : COMPARE_NODE_FIELD(agg_filter);
1046 546038 : COMPARE_NODE_FIELD(over);
1047 546038 : COMPARE_SCALAR_FIELD(ignore_nulls);
1048 546038 : COMPARE_SCALAR_FIELD(agg_within_group);
1049 546038 : COMPARE_SCALAR_FIELD(agg_star);
1050 546038 : COMPARE_SCALAR_FIELD(agg_distinct);
1051 546038 : COMPARE_SCALAR_FIELD(func_variadic);
1052 : COMPARE_LOCATION_FIELD(location);
1053 :
1054 546038 : return true;
1055 : }
1056 :
1057 : static bool
1058 93868 : _equalA_Star(const A_Star *a, const A_Star *b)
1059 : {
1060 :
1061 93868 : return true;
1062 : }
1063 :
1064 : static bool
1065 20592 : _equalA_Indices(const A_Indices *a, const A_Indices *b)
1066 : {
1067 20592 : COMPARE_SCALAR_FIELD(is_slice);
1068 20592 : COMPARE_NODE_FIELD(lidx);
1069 20592 : COMPARE_NODE_FIELD(uidx);
1070 :
1071 20592 : return true;
1072 : }
1073 :
1074 : static bool
1075 50968 : _equalA_Indirection(const A_Indirection *a, const A_Indirection *b)
1076 : {
1077 50968 : COMPARE_NODE_FIELD(arg);
1078 50968 : COMPARE_NODE_FIELD(indirection);
1079 :
1080 50968 : return true;
1081 : }
1082 :
1083 : static bool
1084 10322 : _equalA_ArrayExpr(const A_ArrayExpr *a, const A_ArrayExpr *b)
1085 : {
1086 10322 : COMPARE_NODE_FIELD(elements);
1087 : COMPARE_LOCATION_FIELD(list_start);
1088 : COMPARE_LOCATION_FIELD(list_end);
1089 : COMPARE_LOCATION_FIELD(location);
1090 :
1091 10322 : return true;
1092 : }
1093 :
1094 : static bool
1095 1727038 : _equalResTarget(const ResTarget *a, const ResTarget *b)
1096 : {
1097 1727038 : COMPARE_STRING_FIELD(name);
1098 1727038 : COMPARE_NODE_FIELD(indirection);
1099 1727038 : COMPARE_NODE_FIELD(val);
1100 : COMPARE_LOCATION_FIELD(location);
1101 :
1102 1727038 : return true;
1103 : }
1104 :
1105 : static bool
1106 530 : _equalMultiAssignRef(const MultiAssignRef *a, const MultiAssignRef *b)
1107 : {
1108 530 : COMPARE_NODE_FIELD(source);
1109 530 : COMPARE_SCALAR_FIELD(colno);
1110 530 : COMPARE_SCALAR_FIELD(ncolumns);
1111 :
1112 530 : return true;
1113 : }
1114 :
1115 : static bool
1116 153936 : _equalSortBy(const SortBy *a, const SortBy *b)
1117 : {
1118 153936 : COMPARE_NODE_FIELD(node);
1119 153920 : COMPARE_SCALAR_FIELD(sortby_dir);
1120 153904 : COMPARE_SCALAR_FIELD(sortby_nulls);
1121 153904 : COMPARE_NODE_FIELD(useOp);
1122 : COMPARE_LOCATION_FIELD(location);
1123 :
1124 153904 : return true;
1125 : }
1126 :
1127 : static bool
1128 6286 : _equalWindowDef(const WindowDef *a, const WindowDef *b)
1129 : {
1130 6286 : COMPARE_STRING_FIELD(name);
1131 6286 : COMPARE_STRING_FIELD(refname);
1132 6286 : COMPARE_NODE_FIELD(partitionClause);
1133 6286 : COMPARE_NODE_FIELD(orderClause);
1134 6286 : COMPARE_SCALAR_FIELD(frameOptions);
1135 6286 : COMPARE_NODE_FIELD(startOffset);
1136 6286 : COMPARE_NODE_FIELD(endOffset);
1137 : COMPARE_LOCATION_FIELD(location);
1138 :
1139 6286 : return true;
1140 : }
1141 :
1142 : static bool
1143 31852 : _equalRangeSubselect(const RangeSubselect *a, const RangeSubselect *b)
1144 : {
1145 31852 : COMPARE_SCALAR_FIELD(lateral);
1146 31852 : COMPARE_NODE_FIELD(subquery);
1147 31852 : COMPARE_NODE_FIELD(alias);
1148 :
1149 31852 : return true;
1150 : }
1151 :
1152 : static bool
1153 67406 : _equalRangeFunction(const RangeFunction *a, const RangeFunction *b)
1154 : {
1155 67406 : COMPARE_SCALAR_FIELD(lateral);
1156 67406 : COMPARE_SCALAR_FIELD(ordinality);
1157 67406 : COMPARE_SCALAR_FIELD(is_rowsfrom);
1158 67406 : COMPARE_NODE_FIELD(functions);
1159 67406 : COMPARE_NODE_FIELD(alias);
1160 67406 : COMPARE_NODE_FIELD(coldeflist);
1161 :
1162 67406 : return true;
1163 : }
1164 :
1165 : static bool
1166 336 : _equalRangeTableFunc(const RangeTableFunc *a, const RangeTableFunc *b)
1167 : {
1168 336 : COMPARE_SCALAR_FIELD(lateral);
1169 336 : COMPARE_NODE_FIELD(docexpr);
1170 336 : COMPARE_NODE_FIELD(rowexpr);
1171 336 : COMPARE_NODE_FIELD(namespaces);
1172 336 : COMPARE_NODE_FIELD(columns);
1173 336 : COMPARE_NODE_FIELD(alias);
1174 : COMPARE_LOCATION_FIELD(location);
1175 :
1176 336 : return true;
1177 : }
1178 :
1179 : static bool
1180 1164 : _equalRangeTableFuncCol(const RangeTableFuncCol *a, const RangeTableFuncCol *b)
1181 : {
1182 1164 : COMPARE_STRING_FIELD(colname);
1183 1164 : COMPARE_NODE_FIELD(typeName);
1184 1164 : COMPARE_SCALAR_FIELD(for_ordinality);
1185 1164 : COMPARE_SCALAR_FIELD(is_not_null);
1186 1164 : COMPARE_NODE_FIELD(colexpr);
1187 1164 : COMPARE_NODE_FIELD(coldefexpr);
1188 : COMPARE_LOCATION_FIELD(location);
1189 :
1190 1164 : return true;
1191 : }
1192 :
1193 : static bool
1194 902 : _equalRangeGraphTable(const RangeGraphTable *a, const RangeGraphTable *b)
1195 : {
1196 902 : COMPARE_NODE_FIELD(graph_name);
1197 902 : COMPARE_NODE_FIELD(graph_pattern);
1198 902 : COMPARE_NODE_FIELD(columns);
1199 902 : COMPARE_NODE_FIELD(alias);
1200 : COMPARE_LOCATION_FIELD(location);
1201 :
1202 902 : return true;
1203 : }
1204 :
1205 : static bool
1206 372 : _equalRangeTableSample(const RangeTableSample *a, const RangeTableSample *b)
1207 : {
1208 372 : COMPARE_NODE_FIELD(relation);
1209 372 : COMPARE_NODE_FIELD(method);
1210 372 : COMPARE_NODE_FIELD(args);
1211 372 : COMPARE_NODE_FIELD(repeatable);
1212 : COMPARE_LOCATION_FIELD(location);
1213 :
1214 372 : return true;
1215 : }
1216 :
1217 : static bool
1218 189498 : _equalColumnDef(const ColumnDef *a, const ColumnDef *b)
1219 : {
1220 189498 : COMPARE_STRING_FIELD(colname);
1221 189498 : COMPARE_NODE_FIELD(typeName);
1222 189498 : COMPARE_STRING_FIELD(compression);
1223 189498 : COMPARE_SCALAR_FIELD(inhcount);
1224 189498 : COMPARE_SCALAR_FIELD(is_local);
1225 189498 : COMPARE_SCALAR_FIELD(is_not_null);
1226 189498 : COMPARE_SCALAR_FIELD(is_from_type);
1227 189498 : COMPARE_SCALAR_FIELD(storage);
1228 189498 : COMPARE_STRING_FIELD(storage_name);
1229 189498 : COMPARE_NODE_FIELD(raw_default);
1230 189498 : COMPARE_NODE_FIELD(cooked_default);
1231 189498 : COMPARE_SCALAR_FIELD(identity);
1232 189498 : COMPARE_NODE_FIELD(identitySequence);
1233 189498 : COMPARE_SCALAR_FIELD(generated);
1234 189498 : COMPARE_NODE_FIELD(collClause);
1235 189498 : COMPARE_SCALAR_FIELD(collOid);
1236 189498 : COMPARE_NODE_FIELD(constraints);
1237 189498 : COMPARE_NODE_FIELD(fdwoptions);
1238 : COMPARE_LOCATION_FIELD(location);
1239 :
1240 189498 : return true;
1241 : }
1242 :
1243 : static bool
1244 2064 : _equalTableLikeClause(const TableLikeClause *a, const TableLikeClause *b)
1245 : {
1246 2064 : COMPARE_NODE_FIELD(relation);
1247 2064 : COMPARE_SCALAR_FIELD(options);
1248 2064 : COMPARE_SCALAR_FIELD(relationOid);
1249 :
1250 2064 : return true;
1251 : }
1252 :
1253 : static bool
1254 26309 : _equalIndexElem(const IndexElem *a, const IndexElem *b)
1255 : {
1256 26309 : COMPARE_STRING_FIELD(name);
1257 26218 : COMPARE_NODE_FIELD(expr);
1258 26218 : COMPARE_STRING_FIELD(indexcolname);
1259 26218 : COMPARE_NODE_FIELD(collation);
1260 26218 : COMPARE_NODE_FIELD(opclass);
1261 26218 : COMPARE_NODE_FIELD(opclassopts);
1262 26218 : COMPARE_SCALAR_FIELD(ordering);
1263 26218 : COMPARE_SCALAR_FIELD(nulls_ordering);
1264 : COMPARE_LOCATION_FIELD(location);
1265 :
1266 26218 : return true;
1267 : }
1268 :
1269 : static bool
1270 396606 : _equalDefElem(const DefElem *a, const DefElem *b)
1271 : {
1272 396606 : COMPARE_STRING_FIELD(defnamespace);
1273 396606 : COMPARE_STRING_FIELD(defname);
1274 396606 : COMPARE_NODE_FIELD(arg);
1275 396606 : COMPARE_SCALAR_FIELD(defaction);
1276 : COMPARE_LOCATION_FIELD(location);
1277 :
1278 396606 : return true;
1279 : }
1280 :
1281 : static bool
1282 8056 : _equalLockingClause(const LockingClause *a, const LockingClause *b)
1283 : {
1284 8056 : COMPARE_NODE_FIELD(lockedRels);
1285 8056 : COMPARE_SCALAR_FIELD(strength);
1286 8056 : COMPARE_SCALAR_FIELD(waitPolicy);
1287 :
1288 8056 : return true;
1289 : }
1290 :
1291 : static bool
1292 328 : _equalXmlSerialize(const XmlSerialize *a, const XmlSerialize *b)
1293 : {
1294 328 : COMPARE_SCALAR_FIELD(xmloption);
1295 328 : COMPARE_NODE_FIELD(expr);
1296 328 : COMPARE_NODE_FIELD(typeName);
1297 328 : COMPARE_SCALAR_FIELD(indent);
1298 : COMPARE_LOCATION_FIELD(location);
1299 :
1300 328 : return true;
1301 : }
1302 :
1303 : static bool
1304 15620 : _equalPartitionElem(const PartitionElem *a, const PartitionElem *b)
1305 : {
1306 15620 : COMPARE_STRING_FIELD(name);
1307 15620 : COMPARE_NODE_FIELD(expr);
1308 15620 : COMPARE_NODE_FIELD(collation);
1309 15620 : COMPARE_NODE_FIELD(opclass);
1310 : COMPARE_LOCATION_FIELD(location);
1311 :
1312 15620 : return true;
1313 : }
1314 :
1315 : static bool
1316 14332 : _equalPartitionSpec(const PartitionSpec *a, const PartitionSpec *b)
1317 : {
1318 14332 : COMPARE_SCALAR_FIELD(strategy);
1319 14332 : COMPARE_NODE_FIELD(partParams);
1320 : COMPARE_LOCATION_FIELD(location);
1321 :
1322 14332 : return true;
1323 : }
1324 :
1325 : static bool
1326 34060 : _equalPartitionBoundSpec(const PartitionBoundSpec *a, const PartitionBoundSpec *b)
1327 : {
1328 34060 : COMPARE_SCALAR_FIELD(strategy);
1329 34060 : COMPARE_SCALAR_FIELD(is_default);
1330 34060 : COMPARE_SCALAR_FIELD(modulus);
1331 34060 : COMPARE_SCALAR_FIELD(remainder);
1332 34060 : COMPARE_NODE_FIELD(listdatums);
1333 34060 : COMPARE_NODE_FIELD(lowerdatums);
1334 34060 : COMPARE_NODE_FIELD(upperdatums);
1335 : COMPARE_LOCATION_FIELD(location);
1336 :
1337 34060 : return true;
1338 : }
1339 :
1340 : static bool
1341 0 : _equalPartitionRangeDatum(const PartitionRangeDatum *a, const PartitionRangeDatum *b)
1342 : {
1343 0 : COMPARE_SCALAR_FIELD(kind);
1344 0 : COMPARE_NODE_FIELD(value);
1345 : COMPARE_LOCATION_FIELD(location);
1346 :
1347 0 : return true;
1348 : }
1349 :
1350 : static bool
1351 2912 : _equalSinglePartitionSpec(const SinglePartitionSpec *a, const SinglePartitionSpec *b)
1352 : {
1353 2912 : COMPARE_NODE_FIELD(name);
1354 2912 : COMPARE_NODE_FIELD(bound);
1355 :
1356 2912 : return true;
1357 : }
1358 :
1359 : static bool
1360 10820 : _equalPartitionCmd(const PartitionCmd *a, const PartitionCmd *b)
1361 : {
1362 10820 : COMPARE_NODE_FIELD(name);
1363 10820 : COMPARE_NODE_FIELD(bound);
1364 10820 : COMPARE_NODE_FIELD(partlist);
1365 10820 : COMPARE_SCALAR_FIELD(concurrent);
1366 :
1367 10820 : return true;
1368 : }
1369 :
1370 : static bool
1371 908 : _equalGraphPattern(const GraphPattern *a, const GraphPattern *b)
1372 : {
1373 908 : COMPARE_NODE_FIELD(path_pattern_list);
1374 908 : COMPARE_NODE_FIELD(whereClause);
1375 :
1376 908 : return true;
1377 : }
1378 :
1379 : static bool
1380 2740 : _equalGraphElementPattern(const GraphElementPattern *a, const GraphElementPattern *b)
1381 : {
1382 2740 : COMPARE_SCALAR_FIELD(kind);
1383 2740 : COMPARE_STRING_FIELD(variable);
1384 2740 : COMPARE_NODE_FIELD(labelexpr);
1385 2740 : COMPARE_NODE_FIELD(subexpr);
1386 2740 : COMPARE_NODE_FIELD(whereClause);
1387 2740 : COMPARE_NODE_FIELD(quantifier);
1388 : COMPARE_LOCATION_FIELD(location);
1389 :
1390 2740 : return true;
1391 : }
1392 :
1393 : static bool
1394 944578 : _equalRangeTblEntry(const RangeTblEntry *a, const RangeTblEntry *b)
1395 : {
1396 944578 : COMPARE_NODE_FIELD(alias);
1397 944567 : COMPARE_NODE_FIELD(eref);
1398 944567 : COMPARE_SCALAR_FIELD(rtekind);
1399 944567 : COMPARE_SCALAR_FIELD(relid);
1400 944567 : COMPARE_SCALAR_FIELD(inh);
1401 944567 : COMPARE_SCALAR_FIELD(relkind);
1402 944567 : COMPARE_SCALAR_FIELD(rellockmode);
1403 944567 : COMPARE_SCALAR_FIELD(perminfoindex);
1404 944567 : COMPARE_NODE_FIELD(tablesample);
1405 944567 : COMPARE_NODE_FIELD(subquery);
1406 944563 : COMPARE_SCALAR_FIELD(security_barrier);
1407 944563 : COMPARE_SCALAR_FIELD(jointype);
1408 944563 : COMPARE_SCALAR_FIELD(joinmergedcols);
1409 944563 : COMPARE_NODE_FIELD(joinaliasvars);
1410 944563 : COMPARE_NODE_FIELD(joinleftcols);
1411 944563 : COMPARE_NODE_FIELD(joinrightcols);
1412 944563 : COMPARE_NODE_FIELD(join_using_alias);
1413 944563 : COMPARE_NODE_FIELD(functions);
1414 944563 : COMPARE_SCALAR_FIELD(funcordinality);
1415 944563 : COMPARE_NODE_FIELD(tablefunc);
1416 944563 : COMPARE_NODE_FIELD(graph_pattern);
1417 944563 : COMPARE_NODE_FIELD(graph_table_columns);
1418 944563 : COMPARE_NODE_FIELD(values_lists);
1419 944563 : COMPARE_STRING_FIELD(ctename);
1420 944563 : COMPARE_SCALAR_FIELD(ctelevelsup);
1421 944563 : COMPARE_SCALAR_FIELD(self_reference);
1422 944563 : COMPARE_NODE_FIELD(coltypes);
1423 944563 : COMPARE_NODE_FIELD(coltypmods);
1424 944563 : COMPARE_NODE_FIELD(colcollations);
1425 944563 : COMPARE_STRING_FIELD(enrname);
1426 944563 : COMPARE_SCALAR_FIELD(enrtuples);
1427 944563 : COMPARE_NODE_FIELD(groupexprs);
1428 944563 : COMPARE_SCALAR_FIELD(lateral);
1429 944563 : COMPARE_SCALAR_FIELD(inFromCl);
1430 944563 : COMPARE_NODE_FIELD(securityQuals);
1431 :
1432 944563 : return true;
1433 : }
1434 :
1435 : static bool
1436 645750 : _equalRTEPermissionInfo(const RTEPermissionInfo *a, const RTEPermissionInfo *b)
1437 : {
1438 645750 : COMPARE_SCALAR_FIELD(relid);
1439 645750 : COMPARE_SCALAR_FIELD(inh);
1440 645750 : COMPARE_SCALAR_FIELD(requiredPerms);
1441 645750 : COMPARE_SCALAR_FIELD(checkAsUser);
1442 645717 : COMPARE_BITMAPSET_FIELD(selectedCols);
1443 645717 : COMPARE_BITMAPSET_FIELD(insertedCols);
1444 645717 : COMPARE_BITMAPSET_FIELD(updatedCols);
1445 :
1446 645717 : return true;
1447 : }
1448 :
1449 : static bool
1450 62648 : _equalRangeTblFunction(const RangeTblFunction *a, const RangeTblFunction *b)
1451 : {
1452 62648 : COMPARE_NODE_FIELD(funcexpr);
1453 62648 : COMPARE_SCALAR_FIELD(funccolcount);
1454 62648 : COMPARE_NODE_FIELD(funccolnames);
1455 62648 : COMPARE_NODE_FIELD(funccoltypes);
1456 62648 : COMPARE_NODE_FIELD(funccoltypmods);
1457 62648 : COMPARE_NODE_FIELD(funccolcollations);
1458 62648 : COMPARE_BITMAPSET_FIELD(funcparams);
1459 :
1460 62648 : return true;
1461 : }
1462 :
1463 : static bool
1464 282 : _equalTableSampleClause(const TableSampleClause *a, const TableSampleClause *b)
1465 : {
1466 282 : COMPARE_SCALAR_FIELD(tsmhandler);
1467 282 : COMPARE_NODE_FIELD(args);
1468 282 : COMPARE_NODE_FIELD(repeatable);
1469 :
1470 282 : return true;
1471 : }
1472 :
1473 : static bool
1474 6777 : _equalWithCheckOption(const WithCheckOption *a, const WithCheckOption *b)
1475 : {
1476 6777 : COMPARE_SCALAR_FIELD(kind);
1477 4705 : COMPARE_STRING_FIELD(relname);
1478 4705 : COMPARE_STRING_FIELD(polname);
1479 4560 : COMPARE_NODE_FIELD(qual);
1480 4120 : COMPARE_SCALAR_FIELD(cascaded);
1481 :
1482 4120 : return true;
1483 : }
1484 :
1485 : static bool
1486 208232 : _equalSortGroupClause(const SortGroupClause *a, const SortGroupClause *b)
1487 : {
1488 208232 : COMPARE_SCALAR_FIELD(tleSortGroupRef);
1489 206725 : COMPARE_SCALAR_FIELD(eqop);
1490 206725 : COMPARE_SCALAR_FIELD(sortop);
1491 206695 : COMPARE_SCALAR_FIELD(reverse_sort);
1492 206695 : COMPARE_SCALAR_FIELD(nulls_first);
1493 206690 : COMPARE_SCALAR_FIELD(hashable);
1494 :
1495 206690 : return true;
1496 : }
1497 :
1498 : static bool
1499 6652 : _equalGroupingSet(const GroupingSet *a, const GroupingSet *b)
1500 : {
1501 6652 : COMPARE_SCALAR_FIELD(kind);
1502 6652 : COMPARE_NODE_FIELD(content);
1503 : COMPARE_LOCATION_FIELD(location);
1504 :
1505 6652 : return true;
1506 : }
1507 :
1508 : static bool
1509 3960 : _equalWindowClause(const WindowClause *a, const WindowClause *b)
1510 : {
1511 3960 : COMPARE_STRING_FIELD(name);
1512 3960 : COMPARE_STRING_FIELD(refname);
1513 3960 : COMPARE_NODE_FIELD(partitionClause);
1514 3960 : COMPARE_NODE_FIELD(orderClause);
1515 3960 : COMPARE_SCALAR_FIELD(frameOptions);
1516 3940 : COMPARE_NODE_FIELD(startOffset);
1517 3940 : COMPARE_NODE_FIELD(endOffset);
1518 3940 : COMPARE_SCALAR_FIELD(startInRangeFunc);
1519 3940 : COMPARE_SCALAR_FIELD(endInRangeFunc);
1520 3940 : COMPARE_SCALAR_FIELD(inRangeColl);
1521 3940 : COMPARE_SCALAR_FIELD(inRangeAsc);
1522 3940 : COMPARE_SCALAR_FIELD(inRangeNullsFirst);
1523 3940 : COMPARE_SCALAR_FIELD(winref);
1524 3940 : COMPARE_SCALAR_FIELD(copiedOrder);
1525 :
1526 3940 : return true;
1527 : }
1528 :
1529 : static bool
1530 10166 : _equalRowMarkClause(const RowMarkClause *a, const RowMarkClause *b)
1531 : {
1532 10166 : COMPARE_SCALAR_FIELD(rti);
1533 10166 : COMPARE_SCALAR_FIELD(strength);
1534 10166 : COMPARE_SCALAR_FIELD(waitPolicy);
1535 10166 : COMPARE_SCALAR_FIELD(pushedDown);
1536 :
1537 10166 : return true;
1538 : }
1539 :
1540 : static bool
1541 1882 : _equalForPortionOfClause(const ForPortionOfClause *a, const ForPortionOfClause *b)
1542 : {
1543 1882 : COMPARE_STRING_FIELD(range_name);
1544 : COMPARE_LOCATION_FIELD(location);
1545 : COMPARE_LOCATION_FIELD(target_location);
1546 1882 : COMPARE_NODE_FIELD(target);
1547 1882 : COMPARE_NODE_FIELD(target_start);
1548 1882 : COMPARE_NODE_FIELD(target_end);
1549 :
1550 1882 : return true;
1551 : }
1552 :
1553 : static bool
1554 4530 : _equalWithClause(const WithClause *a, const WithClause *b)
1555 : {
1556 4530 : COMPARE_NODE_FIELD(ctes);
1557 4530 : COMPARE_SCALAR_FIELD(recursive);
1558 : COMPARE_LOCATION_FIELD(location);
1559 :
1560 4530 : return true;
1561 : }
1562 :
1563 : static bool
1564 2800 : _equalInferClause(const InferClause *a, const InferClause *b)
1565 : {
1566 2800 : COMPARE_NODE_FIELD(indexElems);
1567 2800 : COMPARE_NODE_FIELD(whereClause);
1568 2800 : COMPARE_STRING_FIELD(conname);
1569 : COMPARE_LOCATION_FIELD(location);
1570 :
1571 2800 : return true;
1572 : }
1573 :
1574 : static bool
1575 3112 : _equalOnConflictClause(const OnConflictClause *a, const OnConflictClause *b)
1576 : {
1577 3112 : COMPARE_SCALAR_FIELD(action);
1578 3112 : COMPARE_NODE_FIELD(infer);
1579 3112 : COMPARE_SCALAR_FIELD(lockStrength);
1580 3112 : COMPARE_NODE_FIELD(targetList);
1581 3112 : COMPARE_NODE_FIELD(whereClause);
1582 : COMPARE_LOCATION_FIELD(location);
1583 :
1584 3112 : return true;
1585 : }
1586 :
1587 : static bool
1588 280 : _equalCTESearchClause(const CTESearchClause *a, const CTESearchClause *b)
1589 : {
1590 280 : COMPARE_NODE_FIELD(search_col_list);
1591 280 : COMPARE_SCALAR_FIELD(search_breadth_first);
1592 280 : COMPARE_STRING_FIELD(search_seq_column);
1593 : COMPARE_LOCATION_FIELD(location);
1594 :
1595 280 : return true;
1596 : }
1597 :
1598 : static bool
1599 280 : _equalCTECycleClause(const CTECycleClause *a, const CTECycleClause *b)
1600 : {
1601 280 : COMPARE_NODE_FIELD(cycle_col_list);
1602 280 : COMPARE_STRING_FIELD(cycle_mark_column);
1603 280 : COMPARE_NODE_FIELD(cycle_mark_value);
1604 280 : COMPARE_NODE_FIELD(cycle_mark_default);
1605 280 : COMPARE_STRING_FIELD(cycle_path_column);
1606 : COMPARE_LOCATION_FIELD(location);
1607 280 : COMPARE_SCALAR_FIELD(cycle_mark_type);
1608 280 : COMPARE_SCALAR_FIELD(cycle_mark_typmod);
1609 280 : COMPARE_SCALAR_FIELD(cycle_mark_collation);
1610 280 : COMPARE_SCALAR_FIELD(cycle_mark_neop);
1611 :
1612 280 : return true;
1613 : }
1614 :
1615 : static bool
1616 11298 : _equalCommonTableExpr(const CommonTableExpr *a, const CommonTableExpr *b)
1617 : {
1618 11298 : COMPARE_STRING_FIELD(ctename);
1619 11298 : COMPARE_NODE_FIELD(aliascolnames);
1620 11298 : COMPARE_SCALAR_FIELD(ctematerialized);
1621 11298 : COMPARE_NODE_FIELD(ctequery);
1622 11294 : COMPARE_NODE_FIELD(search_clause);
1623 11294 : COMPARE_NODE_FIELD(cycle_clause);
1624 : COMPARE_LOCATION_FIELD(location);
1625 11294 : COMPARE_SCALAR_FIELD(cterecursive);
1626 11294 : COMPARE_SCALAR_FIELD(cterefcount);
1627 11294 : COMPARE_NODE_FIELD(ctecolnames);
1628 11294 : COMPARE_NODE_FIELD(ctecoltypes);
1629 11294 : COMPARE_NODE_FIELD(ctecoltypmods);
1630 11294 : COMPARE_NODE_FIELD(ctecolcollations);
1631 :
1632 11294 : return true;
1633 : }
1634 :
1635 : static bool
1636 4068 : _equalMergeWhenClause(const MergeWhenClause *a, const MergeWhenClause *b)
1637 : {
1638 4068 : COMPARE_SCALAR_FIELD(matchKind);
1639 4068 : COMPARE_SCALAR_FIELD(commandType);
1640 4068 : COMPARE_SCALAR_FIELD(override);
1641 4068 : COMPARE_NODE_FIELD(condition);
1642 4068 : COMPARE_NODE_FIELD(targetList);
1643 4068 : COMPARE_NODE_FIELD(values);
1644 :
1645 4068 : return true;
1646 : }
1647 :
1648 : static bool
1649 200 : _equalReturningOption(const ReturningOption *a, const ReturningOption *b)
1650 : {
1651 200 : COMPARE_SCALAR_FIELD(option);
1652 200 : COMPARE_STRING_FIELD(value);
1653 : COMPARE_LOCATION_FIELD(location);
1654 :
1655 200 : return true;
1656 : }
1657 :
1658 : static bool
1659 4866 : _equalReturningClause(const ReturningClause *a, const ReturningClause *b)
1660 : {
1661 4866 : COMPARE_NODE_FIELD(options);
1662 4866 : COMPARE_NODE_FIELD(exprs);
1663 :
1664 4866 : return true;
1665 : }
1666 :
1667 : static bool
1668 1712 : _equalTriggerTransition(const TriggerTransition *a, const TriggerTransition *b)
1669 : {
1670 1712 : COMPARE_STRING_FIELD(name);
1671 1712 : COMPARE_SCALAR_FIELD(isNew);
1672 1712 : COMPARE_SCALAR_FIELD(isTable);
1673 :
1674 1712 : return true;
1675 : }
1676 :
1677 : static bool
1678 2812 : _equalJsonOutput(const JsonOutput *a, const JsonOutput *b)
1679 : {
1680 2812 : COMPARE_NODE_FIELD(typeName);
1681 2812 : COMPARE_NODE_FIELD(returning);
1682 :
1683 2812 : return true;
1684 : }
1685 :
1686 : static bool
1687 840 : _equalJsonArgument(const JsonArgument *a, const JsonArgument *b)
1688 : {
1689 840 : COMPARE_NODE_FIELD(val);
1690 840 : COMPARE_STRING_FIELD(name);
1691 :
1692 840 : return true;
1693 : }
1694 :
1695 : static bool
1696 2864 : _equalJsonFuncExpr(const JsonFuncExpr *a, const JsonFuncExpr *b)
1697 : {
1698 2864 : COMPARE_SCALAR_FIELD(op);
1699 2864 : COMPARE_STRING_FIELD(column_name);
1700 2864 : COMPARE_NODE_FIELD(context_item);
1701 2864 : COMPARE_NODE_FIELD(pathspec);
1702 2864 : COMPARE_NODE_FIELD(passing);
1703 2864 : COMPARE_NODE_FIELD(output);
1704 2864 : COMPARE_NODE_FIELD(on_empty);
1705 2864 : COMPARE_NODE_FIELD(on_error);
1706 2864 : COMPARE_SCALAR_FIELD(wrapper);
1707 2864 : COMPARE_SCALAR_FIELD(quotes);
1708 : COMPARE_LOCATION_FIELD(location);
1709 :
1710 2864 : return true;
1711 : }
1712 :
1713 : static bool
1714 2640 : _equalJsonTablePathSpec(const JsonTablePathSpec *a, const JsonTablePathSpec *b)
1715 : {
1716 2640 : COMPARE_NODE_FIELD(string);
1717 2640 : COMPARE_STRING_FIELD(name);
1718 : COMPARE_LOCATION_FIELD(name_location);
1719 : COMPARE_LOCATION_FIELD(location);
1720 :
1721 2640 : return true;
1722 : }
1723 :
1724 : static bool
1725 800 : _equalJsonTable(const JsonTable *a, const JsonTable *b)
1726 : {
1727 800 : COMPARE_NODE_FIELD(context_item);
1728 800 : COMPARE_NODE_FIELD(pathspec);
1729 800 : COMPARE_NODE_FIELD(passing);
1730 800 : COMPARE_NODE_FIELD(columns);
1731 800 : COMPARE_NODE_FIELD(on_error);
1732 800 : COMPARE_NODE_FIELD(alias);
1733 800 : COMPARE_SCALAR_FIELD(lateral);
1734 : COMPARE_LOCATION_FIELD(location);
1735 :
1736 800 : return true;
1737 : }
1738 :
1739 : static bool
1740 2208 : _equalJsonTableColumn(const JsonTableColumn *a, const JsonTableColumn *b)
1741 : {
1742 2208 : COMPARE_SCALAR_FIELD(coltype);
1743 2208 : COMPARE_STRING_FIELD(name);
1744 2208 : COMPARE_NODE_FIELD(typeName);
1745 2208 : COMPARE_NODE_FIELD(pathspec);
1746 2208 : COMPARE_NODE_FIELD(format);
1747 2208 : COMPARE_SCALAR_FIELD(wrapper);
1748 2208 : COMPARE_SCALAR_FIELD(quotes);
1749 2208 : COMPARE_NODE_FIELD(columns);
1750 2208 : COMPARE_NODE_FIELD(on_empty);
1751 2208 : COMPARE_NODE_FIELD(on_error);
1752 : COMPARE_LOCATION_FIELD(location);
1753 :
1754 2208 : return true;
1755 : }
1756 :
1757 : static bool
1758 1476 : _equalJsonKeyValue(const JsonKeyValue *a, const JsonKeyValue *b)
1759 : {
1760 1476 : COMPARE_NODE_FIELD(key);
1761 1476 : COMPARE_NODE_FIELD(value);
1762 :
1763 1476 : return true;
1764 : }
1765 :
1766 : static bool
1767 208 : _equalJsonParseExpr(const JsonParseExpr *a, const JsonParseExpr *b)
1768 : {
1769 208 : COMPARE_NODE_FIELD(expr);
1770 208 : COMPARE_NODE_FIELD(output);
1771 208 : COMPARE_SCALAR_FIELD(unique_keys);
1772 : COMPARE_LOCATION_FIELD(location);
1773 :
1774 208 : return true;
1775 : }
1776 :
1777 : static bool
1778 140 : _equalJsonScalarExpr(const JsonScalarExpr *a, const JsonScalarExpr *b)
1779 : {
1780 140 : COMPARE_NODE_FIELD(expr);
1781 140 : COMPARE_NODE_FIELD(output);
1782 : COMPARE_LOCATION_FIELD(location);
1783 :
1784 140 : return true;
1785 : }
1786 :
1787 : static bool
1788 136 : _equalJsonSerializeExpr(const JsonSerializeExpr *a, const JsonSerializeExpr *b)
1789 : {
1790 136 : COMPARE_NODE_FIELD(expr);
1791 136 : COMPARE_NODE_FIELD(output);
1792 : COMPARE_LOCATION_FIELD(location);
1793 :
1794 136 : return true;
1795 : }
1796 :
1797 : static bool
1798 940 : _equalJsonObjectConstructor(const JsonObjectConstructor *a, const JsonObjectConstructor *b)
1799 : {
1800 940 : COMPARE_NODE_FIELD(exprs);
1801 940 : COMPARE_NODE_FIELD(output);
1802 940 : COMPARE_SCALAR_FIELD(absent_on_null);
1803 940 : COMPARE_SCALAR_FIELD(unique);
1804 : COMPARE_LOCATION_FIELD(location);
1805 :
1806 940 : return true;
1807 : }
1808 :
1809 : static bool
1810 632 : _equalJsonArrayConstructor(const JsonArrayConstructor *a, const JsonArrayConstructor *b)
1811 : {
1812 632 : COMPARE_NODE_FIELD(exprs);
1813 632 : COMPARE_NODE_FIELD(output);
1814 632 : COMPARE_SCALAR_FIELD(absent_on_null);
1815 : COMPARE_LOCATION_FIELD(location);
1816 :
1817 632 : return true;
1818 : }
1819 :
1820 : static bool
1821 88 : _equalJsonArrayQueryConstructor(const JsonArrayQueryConstructor *a, const JsonArrayQueryConstructor *b)
1822 : {
1823 88 : COMPARE_NODE_FIELD(query);
1824 88 : COMPARE_NODE_FIELD(output);
1825 88 : COMPARE_NODE_FIELD(format);
1826 88 : COMPARE_SCALAR_FIELD(absent_on_null);
1827 : COMPARE_LOCATION_FIELD(location);
1828 :
1829 88 : return true;
1830 : }
1831 :
1832 : static bool
1833 560 : _equalJsonAggConstructor(const JsonAggConstructor *a, const JsonAggConstructor *b)
1834 : {
1835 560 : COMPARE_NODE_FIELD(output);
1836 560 : COMPARE_NODE_FIELD(agg_filter);
1837 560 : COMPARE_NODE_FIELD(agg_order);
1838 560 : COMPARE_NODE_FIELD(over);
1839 : COMPARE_LOCATION_FIELD(location);
1840 :
1841 560 : return true;
1842 : }
1843 :
1844 : static bool
1845 312 : _equalJsonObjectAgg(const JsonObjectAgg *a, const JsonObjectAgg *b)
1846 : {
1847 312 : COMPARE_NODE_FIELD(constructor);
1848 312 : COMPARE_NODE_FIELD(arg);
1849 312 : COMPARE_SCALAR_FIELD(absent_on_null);
1850 312 : COMPARE_SCALAR_FIELD(unique);
1851 :
1852 312 : return true;
1853 : }
1854 :
1855 : static bool
1856 248 : _equalJsonArrayAgg(const JsonArrayAgg *a, const JsonArrayAgg *b)
1857 : {
1858 248 : COMPARE_NODE_FIELD(constructor);
1859 248 : COMPARE_NODE_FIELD(arg);
1860 248 : COMPARE_SCALAR_FIELD(absent_on_null);
1861 :
1862 248 : return true;
1863 : }
1864 :
1865 : static bool
1866 937118 : _equalRawStmt(const RawStmt *a, const RawStmt *b)
1867 : {
1868 937118 : COMPARE_NODE_FIELD(stmt);
1869 : COMPARE_LOCATION_FIELD(stmt_location);
1870 : COMPARE_LOCATION_FIELD(stmt_len);
1871 :
1872 937118 : return true;
1873 : }
1874 :
1875 : static bool
1876 85506 : _equalInsertStmt(const InsertStmt *a, const InsertStmt *b)
1877 : {
1878 85506 : COMPARE_NODE_FIELD(relation);
1879 85506 : COMPARE_NODE_FIELD(cols);
1880 85506 : COMPARE_NODE_FIELD(selectStmt);
1881 85506 : COMPARE_NODE_FIELD(onConflictClause);
1882 85506 : COMPARE_NODE_FIELD(returningClause);
1883 85506 : COMPARE_NODE_FIELD(withClause);
1884 85506 : COMPARE_SCALAR_FIELD(override);
1885 :
1886 85506 : return true;
1887 : }
1888 :
1889 : static bool
1890 6574 : _equalDeleteStmt(const DeleteStmt *a, const DeleteStmt *b)
1891 : {
1892 6574 : COMPARE_NODE_FIELD(relation);
1893 6574 : COMPARE_NODE_FIELD(usingClause);
1894 6574 : COMPARE_NODE_FIELD(whereClause);
1895 6574 : COMPARE_NODE_FIELD(returningClause);
1896 6574 : COMPARE_NODE_FIELD(withClause);
1897 6574 : COMPARE_NODE_FIELD(forPortionOf);
1898 :
1899 6574 : return true;
1900 : }
1901 :
1902 : static bool
1903 18096 : _equalUpdateStmt(const UpdateStmt *a, const UpdateStmt *b)
1904 : {
1905 18096 : COMPARE_NODE_FIELD(relation);
1906 18096 : COMPARE_NODE_FIELD(targetList);
1907 18096 : COMPARE_NODE_FIELD(whereClause);
1908 18096 : COMPARE_NODE_FIELD(fromClause);
1909 18096 : COMPARE_NODE_FIELD(returningClause);
1910 18096 : COMPARE_NODE_FIELD(withClause);
1911 18096 : COMPARE_NODE_FIELD(forPortionOf);
1912 :
1913 18096 : return true;
1914 : }
1915 :
1916 : static bool
1917 2674 : _equalMergeStmt(const MergeStmt *a, const MergeStmt *b)
1918 : {
1919 2674 : COMPARE_NODE_FIELD(relation);
1920 2674 : COMPARE_NODE_FIELD(sourceRelation);
1921 2674 : COMPARE_NODE_FIELD(joinCondition);
1922 2674 : COMPARE_NODE_FIELD(mergeWhenClauses);
1923 2674 : COMPARE_NODE_FIELD(returningClause);
1924 2674 : COMPARE_NODE_FIELD(withClause);
1925 :
1926 2674 : return true;
1927 : }
1928 :
1929 : static bool
1930 686676 : _equalSelectStmt(const SelectStmt *a, const SelectStmt *b)
1931 : {
1932 686676 : COMPARE_NODE_FIELD(distinctClause);
1933 686676 : COMPARE_NODE_FIELD(intoClause);
1934 686676 : COMPARE_NODE_FIELD(targetList);
1935 686676 : COMPARE_NODE_FIELD(fromClause);
1936 686676 : COMPARE_NODE_FIELD(whereClause);
1937 686676 : COMPARE_NODE_FIELD(groupClause);
1938 686676 : COMPARE_SCALAR_FIELD(groupDistinct);
1939 686676 : COMPARE_SCALAR_FIELD(groupByAll);
1940 686676 : COMPARE_NODE_FIELD(havingClause);
1941 686676 : COMPARE_NODE_FIELD(windowClause);
1942 686676 : COMPARE_NODE_FIELD(valuesLists);
1943 686676 : COMPARE_NODE_FIELD(sortClause);
1944 686676 : COMPARE_NODE_FIELD(limitOffset);
1945 686676 : COMPARE_NODE_FIELD(limitCount);
1946 686676 : COMPARE_SCALAR_FIELD(limitOption);
1947 686676 : COMPARE_NODE_FIELD(lockingClause);
1948 686676 : COMPARE_NODE_FIELD(withClause);
1949 686676 : COMPARE_SCALAR_FIELD(op);
1950 686676 : COMPARE_SCALAR_FIELD(all);
1951 686676 : COMPARE_NODE_FIELD(larg);
1952 686676 : COMPARE_NODE_FIELD(rarg);
1953 :
1954 686676 : return true;
1955 : }
1956 :
1957 : static bool
1958 28832 : _equalSetOperationStmt(const SetOperationStmt *a, const SetOperationStmt *b)
1959 : {
1960 28832 : COMPARE_SCALAR_FIELD(op);
1961 28832 : COMPARE_SCALAR_FIELD(all);
1962 28832 : COMPARE_NODE_FIELD(larg);
1963 28832 : COMPARE_NODE_FIELD(rarg);
1964 28832 : COMPARE_NODE_FIELD(colTypes);
1965 28832 : COMPARE_NODE_FIELD(colTypmods);
1966 28832 : COMPARE_NODE_FIELD(colCollations);
1967 28832 : COMPARE_NODE_FIELD(groupClauses);
1968 :
1969 28832 : return true;
1970 : }
1971 :
1972 : static bool
1973 10984 : _equalReturnStmt(const ReturnStmt *a, const ReturnStmt *b)
1974 : {
1975 10984 : COMPARE_NODE_FIELD(returnval);
1976 :
1977 10984 : return true;
1978 : }
1979 :
1980 : static bool
1981 0 : _equalPLAssignStmt(const PLAssignStmt *a, const PLAssignStmt *b)
1982 : {
1983 0 : COMPARE_STRING_FIELD(name);
1984 0 : COMPARE_NODE_FIELD(indirection);
1985 0 : COMPARE_SCALAR_FIELD(nnames);
1986 0 : COMPARE_NODE_FIELD(val);
1987 : COMPARE_LOCATION_FIELD(location);
1988 :
1989 0 : return true;
1990 : }
1991 :
1992 : static bool
1993 2938 : _equalCreateSchemaStmt(const CreateSchemaStmt *a, const CreateSchemaStmt *b)
1994 : {
1995 2938 : COMPARE_STRING_FIELD(schemaname);
1996 2938 : COMPARE_NODE_FIELD(authrole);
1997 2938 : COMPARE_NODE_FIELD(schemaElts);
1998 2938 : COMPARE_SCALAR_FIELD(if_not_exists);
1999 :
2000 2938 : return true;
2001 : }
2002 :
2003 : static bool
2004 81632 : _equalAlterTableStmt(const AlterTableStmt *a, const AlterTableStmt *b)
2005 : {
2006 81632 : COMPARE_NODE_FIELD(relation);
2007 81632 : COMPARE_NODE_FIELD(cmds);
2008 81632 : COMPARE_SCALAR_FIELD(objtype);
2009 81632 : COMPARE_SCALAR_FIELD(missing_ok);
2010 :
2011 81632 : return true;
2012 : }
2013 :
2014 : static bool
2015 84448 : _equalAlterTableCmd(const AlterTableCmd *a, const AlterTableCmd *b)
2016 : {
2017 84448 : COMPARE_SCALAR_FIELD(subtype);
2018 84448 : COMPARE_STRING_FIELD(name);
2019 84448 : COMPARE_SCALAR_FIELD(num);
2020 84448 : COMPARE_NODE_FIELD(newowner);
2021 84448 : COMPARE_NODE_FIELD(def);
2022 84448 : COMPARE_SCALAR_FIELD(behavior);
2023 84448 : COMPARE_SCALAR_FIELD(missing_ok);
2024 84448 : COMPARE_SCALAR_FIELD(recurse);
2025 :
2026 84448 : return true;
2027 : }
2028 :
2029 : static bool
2030 1184 : _equalATAlterConstraint(const ATAlterConstraint *a, const ATAlterConstraint *b)
2031 : {
2032 1184 : COMPARE_STRING_FIELD(conname);
2033 1184 : COMPARE_SCALAR_FIELD(alterEnforceability);
2034 1184 : COMPARE_SCALAR_FIELD(is_enforced);
2035 1184 : COMPARE_SCALAR_FIELD(alterDeferrability);
2036 1184 : COMPARE_SCALAR_FIELD(deferrable);
2037 1184 : COMPARE_SCALAR_FIELD(initdeferred);
2038 1184 : COMPARE_SCALAR_FIELD(alterInheritability);
2039 1184 : COMPARE_SCALAR_FIELD(noinherit);
2040 :
2041 1184 : return true;
2042 : }
2043 :
2044 : static bool
2045 1204 : _equalReplicaIdentityStmt(const ReplicaIdentityStmt *a, const ReplicaIdentityStmt *b)
2046 : {
2047 1204 : COMPARE_SCALAR_FIELD(identity_type);
2048 1204 : COMPARE_STRING_FIELD(name);
2049 :
2050 1204 : return true;
2051 : }
2052 :
2053 : static bool
2054 16 : _equalAlterCollationStmt(const AlterCollationStmt *a, const AlterCollationStmt *b)
2055 : {
2056 16 : COMPARE_NODE_FIELD(collname);
2057 :
2058 16 : return true;
2059 : }
2060 :
2061 : static bool
2062 768 : _equalAlterDomainStmt(const AlterDomainStmt *a, const AlterDomainStmt *b)
2063 : {
2064 768 : COMPARE_SCALAR_FIELD(subtype);
2065 768 : COMPARE_NODE_FIELD(typeName);
2066 768 : COMPARE_STRING_FIELD(name);
2067 768 : COMPARE_NODE_FIELD(def);
2068 768 : COMPARE_SCALAR_FIELD(behavior);
2069 768 : COMPARE_SCALAR_FIELD(missing_ok);
2070 :
2071 768 : return true;
2072 : }
2073 :
2074 : static bool
2075 33970 : _equalGrantStmt(const GrantStmt *a, const GrantStmt *b)
2076 : {
2077 33970 : COMPARE_SCALAR_FIELD(is_grant);
2078 33970 : COMPARE_SCALAR_FIELD(targtype);
2079 33970 : COMPARE_SCALAR_FIELD(objtype);
2080 33970 : COMPARE_NODE_FIELD(objects);
2081 33970 : COMPARE_NODE_FIELD(privileges);
2082 33970 : COMPARE_NODE_FIELD(grantees);
2083 33970 : COMPARE_SCALAR_FIELD(grant_option);
2084 33970 : COMPARE_NODE_FIELD(grantor);
2085 33970 : COMPARE_SCALAR_FIELD(behavior);
2086 :
2087 33970 : return true;
2088 : }
2089 :
2090 : static bool
2091 31788 : _equalObjectWithArgs(const ObjectWithArgs *a, const ObjectWithArgs *b)
2092 : {
2093 31788 : COMPARE_NODE_FIELD(objname);
2094 31788 : COMPARE_NODE_FIELD(objargs);
2095 31788 : COMPARE_NODE_FIELD(objfuncargs);
2096 31788 : COMPARE_SCALAR_FIELD(args_unspecified);
2097 :
2098 31788 : return true;
2099 : }
2100 :
2101 : static bool
2102 30506 : _equalAccessPriv(const AccessPriv *a, const AccessPriv *b)
2103 : {
2104 30506 : COMPARE_STRING_FIELD(priv_name);
2105 30506 : COMPARE_NODE_FIELD(cols);
2106 :
2107 30506 : return true;
2108 : }
2109 :
2110 : static bool
2111 1752 : _equalGrantRoleStmt(const GrantRoleStmt *a, const GrantRoleStmt *b)
2112 : {
2113 1752 : COMPARE_NODE_FIELD(granted_roles);
2114 1752 : COMPARE_NODE_FIELD(grantee_roles);
2115 1752 : COMPARE_SCALAR_FIELD(is_grant);
2116 1752 : COMPARE_NODE_FIELD(opt);
2117 1752 : COMPARE_NODE_FIELD(grantor);
2118 1752 : COMPARE_SCALAR_FIELD(behavior);
2119 :
2120 1752 : return true;
2121 : }
2122 :
2123 : static bool
2124 540 : _equalAlterDefaultPrivilegesStmt(const AlterDefaultPrivilegesStmt *a, const AlterDefaultPrivilegesStmt *b)
2125 : {
2126 540 : COMPARE_NODE_FIELD(options);
2127 540 : COMPARE_NODE_FIELD(action);
2128 :
2129 540 : return true;
2130 : }
2131 :
2132 : static bool
2133 26846 : _equalCopyStmt(const CopyStmt *a, const CopyStmt *b)
2134 : {
2135 26846 : COMPARE_NODE_FIELD(relation);
2136 26846 : COMPARE_NODE_FIELD(query);
2137 26846 : COMPARE_NODE_FIELD(attlist);
2138 26846 : COMPARE_SCALAR_FIELD(is_from);
2139 26846 : COMPARE_SCALAR_FIELD(is_program);
2140 26846 : COMPARE_STRING_FIELD(filename);
2141 26846 : COMPARE_NODE_FIELD(options);
2142 26846 : COMPARE_NODE_FIELD(whereClause);
2143 :
2144 26846 : return true;
2145 : }
2146 :
2147 : static bool
2148 79186 : _equalVariableSetStmt(const VariableSetStmt *a, const VariableSetStmt *b)
2149 : {
2150 79186 : COMPARE_SCALAR_FIELD(kind);
2151 79186 : COMPARE_STRING_FIELD(name);
2152 79186 : COMPARE_NODE_FIELD(args);
2153 79186 : COMPARE_SCALAR_FIELD(jumble_args);
2154 79186 : COMPARE_SCALAR_FIELD(is_local);
2155 : COMPARE_LOCATION_FIELD(location);
2156 :
2157 79186 : return true;
2158 : }
2159 :
2160 : static bool
2161 2316 : _equalVariableShowStmt(const VariableShowStmt *a, const VariableShowStmt *b)
2162 : {
2163 2316 : COMPARE_STRING_FIELD(name);
2164 :
2165 2316 : return true;
2166 : }
2167 :
2168 : static bool
2169 102752 : _equalCreateStmt(const CreateStmt *a, const CreateStmt *b)
2170 : {
2171 102752 : COMPARE_NODE_FIELD(relation);
2172 102752 : COMPARE_NODE_FIELD(tableElts);
2173 102752 : COMPARE_NODE_FIELD(inhRelations);
2174 102752 : COMPARE_NODE_FIELD(partbound);
2175 102752 : COMPARE_NODE_FIELD(partspec);
2176 102752 : COMPARE_NODE_FIELD(ofTypename);
2177 102752 : COMPARE_NODE_FIELD(constraints);
2178 102752 : COMPARE_NODE_FIELD(nnconstraints);
2179 102752 : COMPARE_NODE_FIELD(options);
2180 102752 : COMPARE_SCALAR_FIELD(oncommit);
2181 102752 : COMPARE_STRING_FIELD(tablespacename);
2182 102752 : COMPARE_STRING_FIELD(accessMethod);
2183 102752 : COMPARE_SCALAR_FIELD(if_not_exists);
2184 :
2185 102752 : return true;
2186 : }
2187 :
2188 : static bool
2189 95372 : _equalConstraint(const Constraint *a, const Constraint *b)
2190 : {
2191 95372 : COMPARE_SCALAR_FIELD(contype);
2192 95372 : COMPARE_STRING_FIELD(conname);
2193 95372 : COMPARE_SCALAR_FIELD(deferrable);
2194 95372 : COMPARE_SCALAR_FIELD(initdeferred);
2195 95372 : COMPARE_SCALAR_FIELD(is_enforced);
2196 95372 : COMPARE_SCALAR_FIELD(skip_validation);
2197 95372 : COMPARE_SCALAR_FIELD(initially_valid);
2198 95372 : COMPARE_SCALAR_FIELD(is_no_inherit);
2199 95372 : COMPARE_NODE_FIELD(raw_expr);
2200 95372 : COMPARE_STRING_FIELD(cooked_expr);
2201 95372 : COMPARE_SCALAR_FIELD(generated_when);
2202 95372 : COMPARE_SCALAR_FIELD(generated_kind);
2203 95372 : COMPARE_SCALAR_FIELD(nulls_not_distinct);
2204 95372 : COMPARE_NODE_FIELD(keys);
2205 95372 : COMPARE_SCALAR_FIELD(without_overlaps);
2206 95372 : COMPARE_NODE_FIELD(including);
2207 95372 : COMPARE_NODE_FIELD(exclusions);
2208 95372 : COMPARE_NODE_FIELD(options);
2209 95372 : COMPARE_STRING_FIELD(indexname);
2210 95372 : COMPARE_STRING_FIELD(indexspace);
2211 95372 : COMPARE_SCALAR_FIELD(reset_default_tblspc);
2212 95372 : COMPARE_STRING_FIELD(access_method);
2213 95372 : COMPARE_NODE_FIELD(where_clause);
2214 95372 : COMPARE_NODE_FIELD(pktable);
2215 95372 : COMPARE_NODE_FIELD(fk_attrs);
2216 95372 : COMPARE_NODE_FIELD(pk_attrs);
2217 95372 : COMPARE_SCALAR_FIELD(fk_with_period);
2218 95372 : COMPARE_SCALAR_FIELD(pk_with_period);
2219 95372 : COMPARE_SCALAR_FIELD(fk_matchtype);
2220 95372 : COMPARE_SCALAR_FIELD(fk_upd_action);
2221 95372 : COMPARE_SCALAR_FIELD(fk_del_action);
2222 95372 : COMPARE_NODE_FIELD(fk_del_set_cols);
2223 95372 : COMPARE_NODE_FIELD(old_conpfeqop);
2224 95372 : COMPARE_SCALAR_FIELD(old_pktable_oid);
2225 : COMPARE_LOCATION_FIELD(location);
2226 :
2227 95372 : return true;
2228 : }
2229 :
2230 : static bool
2231 368 : _equalCreateTableSpaceStmt(const CreateTableSpaceStmt *a, const CreateTableSpaceStmt *b)
2232 : {
2233 368 : COMPARE_STRING_FIELD(tablespacename);
2234 368 : COMPARE_NODE_FIELD(owner);
2235 368 : COMPARE_STRING_FIELD(location);
2236 368 : COMPARE_NODE_FIELD(options);
2237 :
2238 368 : return true;
2239 : }
2240 :
2241 : static bool
2242 204 : _equalDropTableSpaceStmt(const DropTableSpaceStmt *a, const DropTableSpaceStmt *b)
2243 : {
2244 204 : COMPARE_STRING_FIELD(tablespacename);
2245 204 : COMPARE_SCALAR_FIELD(missing_ok);
2246 :
2247 204 : return true;
2248 : }
2249 :
2250 : static bool
2251 64 : _equalAlterTableSpaceOptionsStmt(const AlterTableSpaceOptionsStmt *a, const AlterTableSpaceOptionsStmt *b)
2252 : {
2253 64 : COMPARE_STRING_FIELD(tablespacename);
2254 64 : COMPARE_NODE_FIELD(options);
2255 64 : COMPARE_SCALAR_FIELD(isReset);
2256 :
2257 64 : return true;
2258 : }
2259 :
2260 : static bool
2261 60 : _equalAlterTableMoveAllStmt(const AlterTableMoveAllStmt *a, const AlterTableMoveAllStmt *b)
2262 : {
2263 60 : COMPARE_STRING_FIELD(orig_tablespacename);
2264 60 : COMPARE_SCALAR_FIELD(objtype);
2265 60 : COMPARE_NODE_FIELD(roles);
2266 60 : COMPARE_STRING_FIELD(new_tablespacename);
2267 60 : COMPARE_SCALAR_FIELD(nowait);
2268 :
2269 60 : return true;
2270 : }
2271 :
2272 : static bool
2273 1244 : _equalCreateExtensionStmt(const CreateExtensionStmt *a, const CreateExtensionStmt *b)
2274 : {
2275 1244 : COMPARE_STRING_FIELD(extname);
2276 1244 : COMPARE_SCALAR_FIELD(if_not_exists);
2277 1244 : COMPARE_NODE_FIELD(options);
2278 :
2279 1244 : return true;
2280 : }
2281 :
2282 : static bool
2283 74 : _equalAlterExtensionStmt(const AlterExtensionStmt *a, const AlterExtensionStmt *b)
2284 : {
2285 74 : COMPARE_STRING_FIELD(extname);
2286 74 : COMPARE_NODE_FIELD(options);
2287 :
2288 74 : return true;
2289 : }
2290 :
2291 : static bool
2292 560 : _equalAlterExtensionContentsStmt(const AlterExtensionContentsStmt *a, const AlterExtensionContentsStmt *b)
2293 : {
2294 560 : COMPARE_STRING_FIELD(extname);
2295 560 : COMPARE_SCALAR_FIELD(action);
2296 560 : COMPARE_SCALAR_FIELD(objtype);
2297 560 : COMPARE_NODE_FIELD(object);
2298 :
2299 560 : return true;
2300 : }
2301 :
2302 : static bool
2303 536 : _equalCreateFdwStmt(const CreateFdwStmt *a, const CreateFdwStmt *b)
2304 : {
2305 536 : COMPARE_STRING_FIELD(fdwname);
2306 536 : COMPARE_NODE_FIELD(func_options);
2307 536 : COMPARE_NODE_FIELD(options);
2308 :
2309 536 : return true;
2310 : }
2311 :
2312 : static bool
2313 400 : _equalAlterFdwStmt(const AlterFdwStmt *a, const AlterFdwStmt *b)
2314 : {
2315 400 : COMPARE_STRING_FIELD(fdwname);
2316 400 : COMPARE_NODE_FIELD(func_options);
2317 400 : COMPARE_NODE_FIELD(options);
2318 :
2319 400 : return true;
2320 : }
2321 :
2322 : static bool
2323 746 : _equalCreateForeignServerStmt(const CreateForeignServerStmt *a, const CreateForeignServerStmt *b)
2324 : {
2325 746 : COMPARE_STRING_FIELD(servername);
2326 746 : COMPARE_STRING_FIELD(servertype);
2327 746 : COMPARE_STRING_FIELD(version);
2328 746 : COMPARE_STRING_FIELD(fdwname);
2329 746 : COMPARE_SCALAR_FIELD(if_not_exists);
2330 746 : COMPARE_NODE_FIELD(options);
2331 :
2332 746 : return true;
2333 : }
2334 :
2335 : static bool
2336 516 : _equalAlterForeignServerStmt(const AlterForeignServerStmt *a, const AlterForeignServerStmt *b)
2337 : {
2338 516 : COMPARE_STRING_FIELD(servername);
2339 516 : COMPARE_STRING_FIELD(version);
2340 516 : COMPARE_NODE_FIELD(options);
2341 516 : COMPARE_SCALAR_FIELD(has_version);
2342 :
2343 516 : return true;
2344 : }
2345 :
2346 : static bool
2347 1116 : _equalCreateForeignTableStmt(const CreateForeignTableStmt *a, const CreateForeignTableStmt *b)
2348 : {
2349 1116 : COMPARE_NODE_FIELD(base.relation);
2350 1116 : COMPARE_NODE_FIELD(base.tableElts);
2351 1116 : COMPARE_NODE_FIELD(base.inhRelations);
2352 1116 : COMPARE_NODE_FIELD(base.partbound);
2353 1116 : COMPARE_NODE_FIELD(base.partspec);
2354 1116 : COMPARE_NODE_FIELD(base.ofTypename);
2355 1116 : COMPARE_NODE_FIELD(base.constraints);
2356 1116 : COMPARE_NODE_FIELD(base.nnconstraints);
2357 1116 : COMPARE_NODE_FIELD(base.options);
2358 1116 : COMPARE_SCALAR_FIELD(base.oncommit);
2359 1116 : COMPARE_STRING_FIELD(base.tablespacename);
2360 1116 : COMPARE_STRING_FIELD(base.accessMethod);
2361 1116 : COMPARE_SCALAR_FIELD(base.if_not_exists);
2362 1116 : COMPARE_STRING_FIELD(servername);
2363 1116 : COMPARE_NODE_FIELD(options);
2364 :
2365 1116 : return true;
2366 : }
2367 :
2368 : static bool
2369 648 : _equalCreateUserMappingStmt(const CreateUserMappingStmt *a, const CreateUserMappingStmt *b)
2370 : {
2371 648 : COMPARE_NODE_FIELD(user);
2372 648 : COMPARE_STRING_FIELD(servername);
2373 648 : COMPARE_SCALAR_FIELD(if_not_exists);
2374 648 : COMPARE_NODE_FIELD(options);
2375 :
2376 648 : return true;
2377 : }
2378 :
2379 : static bool
2380 280 : _equalAlterUserMappingStmt(const AlterUserMappingStmt *a, const AlterUserMappingStmt *b)
2381 : {
2382 280 : COMPARE_NODE_FIELD(user);
2383 280 : COMPARE_STRING_FIELD(servername);
2384 280 : COMPARE_NODE_FIELD(options);
2385 :
2386 280 : return true;
2387 : }
2388 :
2389 : static bool
2390 316 : _equalDropUserMappingStmt(const DropUserMappingStmt *a, const DropUserMappingStmt *b)
2391 : {
2392 316 : COMPARE_NODE_FIELD(user);
2393 316 : COMPARE_STRING_FIELD(servername);
2394 316 : COMPARE_SCALAR_FIELD(missing_ok);
2395 :
2396 316 : return true;
2397 : }
2398 :
2399 : static bool
2400 112 : _equalImportForeignSchemaStmt(const ImportForeignSchemaStmt *a, const ImportForeignSchemaStmt *b)
2401 : {
2402 112 : COMPARE_STRING_FIELD(server_name);
2403 112 : COMPARE_STRING_FIELD(remote_schema);
2404 112 : COMPARE_STRING_FIELD(local_schema);
2405 112 : COMPARE_SCALAR_FIELD(list_type);
2406 112 : COMPARE_NODE_FIELD(table_list);
2407 112 : COMPARE_NODE_FIELD(options);
2408 :
2409 112 : return true;
2410 : }
2411 :
2412 : static bool
2413 2268 : _equalCreatePolicyStmt(const CreatePolicyStmt *a, const CreatePolicyStmt *b)
2414 : {
2415 2268 : COMPARE_STRING_FIELD(policy_name);
2416 2268 : COMPARE_NODE_FIELD(table);
2417 2268 : COMPARE_STRING_FIELD(cmd_name);
2418 2268 : COMPARE_SCALAR_FIELD(permissive);
2419 2268 : COMPARE_NODE_FIELD(roles);
2420 2268 : COMPARE_NODE_FIELD(qual);
2421 2268 : COMPARE_NODE_FIELD(with_check);
2422 :
2423 2268 : return true;
2424 : }
2425 :
2426 : static bool
2427 224 : _equalAlterPolicyStmt(const AlterPolicyStmt *a, const AlterPolicyStmt *b)
2428 : {
2429 224 : COMPARE_STRING_FIELD(policy_name);
2430 224 : COMPARE_NODE_FIELD(table);
2431 224 : COMPARE_NODE_FIELD(roles);
2432 224 : COMPARE_NODE_FIELD(qual);
2433 224 : COMPARE_NODE_FIELD(with_check);
2434 :
2435 224 : return true;
2436 : }
2437 :
2438 : static bool
2439 184 : _equalCreateAmStmt(const CreateAmStmt *a, const CreateAmStmt *b)
2440 : {
2441 184 : COMPARE_STRING_FIELD(amname);
2442 184 : COMPARE_NODE_FIELD(handler_name);
2443 184 : COMPARE_SCALAR_FIELD(amtype);
2444 :
2445 184 : return true;
2446 : }
2447 :
2448 : static bool
2449 8520 : _equalCreateTrigStmt(const CreateTrigStmt *a, const CreateTrigStmt *b)
2450 : {
2451 8520 : COMPARE_SCALAR_FIELD(replace);
2452 8520 : COMPARE_SCALAR_FIELD(isconstraint);
2453 8520 : COMPARE_STRING_FIELD(trigname);
2454 8520 : COMPARE_NODE_FIELD(relation);
2455 8520 : COMPARE_NODE_FIELD(funcname);
2456 8520 : COMPARE_NODE_FIELD(args);
2457 8520 : COMPARE_SCALAR_FIELD(row);
2458 8520 : COMPARE_SCALAR_FIELD(timing);
2459 8520 : COMPARE_SCALAR_FIELD(events);
2460 8520 : COMPARE_NODE_FIELD(columns);
2461 8520 : COMPARE_NODE_FIELD(whenClause);
2462 8520 : COMPARE_NODE_FIELD(transitionRels);
2463 8520 : COMPARE_SCALAR_FIELD(deferrable);
2464 8520 : COMPARE_SCALAR_FIELD(initdeferred);
2465 8520 : COMPARE_NODE_FIELD(constrrel);
2466 :
2467 8520 : return true;
2468 : }
2469 :
2470 : static bool
2471 512 : _equalCreateEventTrigStmt(const CreateEventTrigStmt *a, const CreateEventTrigStmt *b)
2472 : {
2473 512 : COMPARE_STRING_FIELD(trigname);
2474 512 : COMPARE_STRING_FIELD(eventname);
2475 512 : COMPARE_NODE_FIELD(whenclause);
2476 512 : COMPARE_NODE_FIELD(funcname);
2477 :
2478 512 : return true;
2479 : }
2480 :
2481 : static bool
2482 124 : _equalAlterEventTrigStmt(const AlterEventTrigStmt *a, const AlterEventTrigStmt *b)
2483 : {
2484 124 : COMPARE_STRING_FIELD(trigname);
2485 124 : COMPARE_SCALAR_FIELD(tgenabled);
2486 :
2487 124 : return true;
2488 : }
2489 :
2490 : static bool
2491 320 : _equalCreatePLangStmt(const CreatePLangStmt *a, const CreatePLangStmt *b)
2492 : {
2493 320 : COMPARE_SCALAR_FIELD(replace);
2494 320 : COMPARE_STRING_FIELD(plname);
2495 320 : COMPARE_NODE_FIELD(plhandler);
2496 320 : COMPARE_NODE_FIELD(plinline);
2497 320 : COMPARE_NODE_FIELD(plvalidator);
2498 320 : COMPARE_SCALAR_FIELD(pltrusted);
2499 :
2500 320 : return true;
2501 : }
2502 :
2503 : static bool
2504 5344 : _equalCreateRoleStmt(const CreateRoleStmt *a, const CreateRoleStmt *b)
2505 : {
2506 5344 : COMPARE_SCALAR_FIELD(stmt_type);
2507 5344 : COMPARE_STRING_FIELD(role);
2508 5344 : COMPARE_NODE_FIELD(options);
2509 :
2510 5344 : return true;
2511 : }
2512 :
2513 : static bool
2514 1160 : _equalAlterRoleStmt(const AlterRoleStmt *a, const AlterRoleStmt *b)
2515 : {
2516 1160 : COMPARE_NODE_FIELD(role);
2517 1160 : COMPARE_NODE_FIELD(options);
2518 1160 : COMPARE_SCALAR_FIELD(action);
2519 :
2520 1160 : return true;
2521 : }
2522 :
2523 : static bool
2524 252 : _equalAlterRoleSetStmt(const AlterRoleSetStmt *a, const AlterRoleSetStmt *b)
2525 : {
2526 252 : COMPARE_NODE_FIELD(role);
2527 252 : COMPARE_STRING_FIELD(database);
2528 252 : COMPARE_NODE_FIELD(setstmt);
2529 :
2530 252 : return true;
2531 : }
2532 :
2533 : static bool
2534 5116 : _equalDropRoleStmt(const DropRoleStmt *a, const DropRoleStmt *b)
2535 : {
2536 5116 : COMPARE_NODE_FIELD(roles);
2537 5116 : COMPARE_SCALAR_FIELD(missing_ok);
2538 :
2539 5116 : return true;
2540 : }
2541 :
2542 : static bool
2543 1764 : _equalCreateSeqStmt(const CreateSeqStmt *a, const CreateSeqStmt *b)
2544 : {
2545 1764 : COMPARE_NODE_FIELD(sequence);
2546 1764 : COMPARE_NODE_FIELD(options);
2547 1764 : COMPARE_SCALAR_FIELD(ownerId);
2548 1764 : COMPARE_SCALAR_FIELD(for_identity);
2549 1764 : COMPARE_SCALAR_FIELD(if_not_exists);
2550 :
2551 1764 : return true;
2552 : }
2553 :
2554 : static bool
2555 500 : _equalAlterSeqStmt(const AlterSeqStmt *a, const AlterSeqStmt *b)
2556 : {
2557 500 : COMPARE_NODE_FIELD(sequence);
2558 500 : COMPARE_NODE_FIELD(options);
2559 500 : COMPARE_SCALAR_FIELD(for_identity);
2560 500 : COMPARE_SCALAR_FIELD(missing_ok);
2561 :
2562 500 : return true;
2563 : }
2564 :
2565 : static bool
2566 22564 : _equalDefineStmt(const DefineStmt *a, const DefineStmt *b)
2567 : {
2568 22564 : COMPARE_SCALAR_FIELD(kind);
2569 22564 : COMPARE_SCALAR_FIELD(oldstyle);
2570 22564 : COMPARE_NODE_FIELD(defnames);
2571 22564 : COMPARE_NODE_FIELD(args);
2572 22564 : COMPARE_NODE_FIELD(definition);
2573 22564 : COMPARE_SCALAR_FIELD(if_not_exists);
2574 22564 : COMPARE_SCALAR_FIELD(replace);
2575 :
2576 22564 : return true;
2577 : }
2578 :
2579 : static bool
2580 3932 : _equalCreateDomainStmt(const CreateDomainStmt *a, const CreateDomainStmt *b)
2581 : {
2582 3932 : COMPARE_NODE_FIELD(domainname);
2583 3932 : COMPARE_NODE_FIELD(typeName);
2584 3932 : COMPARE_NODE_FIELD(collClause);
2585 3932 : COMPARE_NODE_FIELD(constraints);
2586 :
2587 3932 : return true;
2588 : }
2589 :
2590 : static bool
2591 1180 : _equalCreateOpClassStmt(const CreateOpClassStmt *a, const CreateOpClassStmt *b)
2592 : {
2593 1180 : COMPARE_NODE_FIELD(opclassname);
2594 1180 : COMPARE_NODE_FIELD(opfamilyname);
2595 1180 : COMPARE_STRING_FIELD(amname);
2596 1180 : COMPARE_NODE_FIELD(datatype);
2597 1180 : COMPARE_NODE_FIELD(items);
2598 1180 : COMPARE_SCALAR_FIELD(isDefault);
2599 :
2600 1180 : return true;
2601 : }
2602 :
2603 : static bool
2604 14340 : _equalCreateOpClassItem(const CreateOpClassItem *a, const CreateOpClassItem *b)
2605 : {
2606 14340 : COMPARE_SCALAR_FIELD(itemtype);
2607 14340 : COMPARE_NODE_FIELD(name);
2608 14340 : COMPARE_SCALAR_FIELD(number);
2609 14340 : COMPARE_NODE_FIELD(order_family);
2610 14340 : COMPARE_NODE_FIELD(class_args);
2611 14340 : COMPARE_NODE_FIELD(storedtype);
2612 :
2613 14340 : return true;
2614 : }
2615 :
2616 : static bool
2617 380 : _equalCreateOpFamilyStmt(const CreateOpFamilyStmt *a, const CreateOpFamilyStmt *b)
2618 : {
2619 380 : COMPARE_NODE_FIELD(opfamilyname);
2620 380 : COMPARE_STRING_FIELD(amname);
2621 :
2622 380 : return true;
2623 : }
2624 :
2625 : static bool
2626 1104 : _equalAlterOpFamilyStmt(const AlterOpFamilyStmt *a, const AlterOpFamilyStmt *b)
2627 : {
2628 1104 : COMPARE_NODE_FIELD(opfamilyname);
2629 1104 : COMPARE_STRING_FIELD(amname);
2630 1104 : COMPARE_SCALAR_FIELD(isDrop);
2631 1104 : COMPARE_NODE_FIELD(items);
2632 :
2633 1104 : return true;
2634 : }
2635 :
2636 : static bool
2637 68794 : _equalDropStmt(const DropStmt *a, const DropStmt *b)
2638 : {
2639 68794 : COMPARE_NODE_FIELD(objects);
2640 68794 : COMPARE_SCALAR_FIELD(removeType);
2641 68794 : COMPARE_SCALAR_FIELD(behavior);
2642 68794 : COMPARE_SCALAR_FIELD(missing_ok);
2643 68794 : COMPARE_SCALAR_FIELD(concurrent);
2644 :
2645 68794 : return true;
2646 : }
2647 :
2648 : static bool
2649 4592 : _equalTruncateStmt(const TruncateStmt *a, const TruncateStmt *b)
2650 : {
2651 4592 : COMPARE_NODE_FIELD(relations);
2652 4592 : COMPARE_SCALAR_FIELD(restart_seqs);
2653 4592 : COMPARE_SCALAR_FIELD(behavior);
2654 :
2655 4592 : return true;
2656 : }
2657 :
2658 : static bool
2659 17458 : _equalCommentStmt(const CommentStmt *a, const CommentStmt *b)
2660 : {
2661 17458 : COMPARE_SCALAR_FIELD(objtype);
2662 17458 : COMPARE_NODE_FIELD(object);
2663 17458 : COMPARE_STRING_FIELD(comment);
2664 :
2665 17458 : return true;
2666 : }
2667 :
2668 : static bool
2669 268 : _equalSecLabelStmt(const SecLabelStmt *a, const SecLabelStmt *b)
2670 : {
2671 268 : COMPARE_SCALAR_FIELD(objtype);
2672 268 : COMPARE_NODE_FIELD(object);
2673 268 : COMPARE_STRING_FIELD(provider);
2674 268 : COMPARE_STRING_FIELD(label);
2675 :
2676 268 : return true;
2677 : }
2678 :
2679 : static bool
2680 8572 : _equalDeclareCursorStmt(const DeclareCursorStmt *a, const DeclareCursorStmt *b)
2681 : {
2682 8572 : COMPARE_STRING_FIELD(portalname);
2683 8572 : COMPARE_SCALAR_FIELD(options);
2684 8572 : COMPARE_NODE_FIELD(query);
2685 :
2686 8572 : return true;
2687 : }
2688 :
2689 : static bool
2690 4692 : _equalClosePortalStmt(const ClosePortalStmt *a, const ClosePortalStmt *b)
2691 : {
2692 4692 : COMPARE_STRING_FIELD(portalname);
2693 :
2694 4692 : return true;
2695 : }
2696 :
2697 : static bool
2698 15368 : _equalFetchStmt(const FetchStmt *a, const FetchStmt *b)
2699 : {
2700 15368 : COMPARE_SCALAR_FIELD(direction);
2701 15368 : COMPARE_SCALAR_FIELD(howMany);
2702 15368 : COMPARE_STRING_FIELD(portalname);
2703 15368 : COMPARE_SCALAR_FIELD(ismove);
2704 15368 : COMPARE_SCALAR_FIELD(direction_keyword);
2705 : COMPARE_LOCATION_FIELD(location);
2706 :
2707 15368 : return true;
2708 : }
2709 :
2710 : static bool
2711 17030 : _equalIndexStmt(const IndexStmt *a, const IndexStmt *b)
2712 : {
2713 17030 : COMPARE_STRING_FIELD(idxname);
2714 17030 : COMPARE_NODE_FIELD(relation);
2715 17030 : COMPARE_STRING_FIELD(accessMethod);
2716 17030 : COMPARE_STRING_FIELD(tableSpace);
2717 17030 : COMPARE_NODE_FIELD(indexParams);
2718 17030 : COMPARE_NODE_FIELD(indexIncludingParams);
2719 17030 : COMPARE_NODE_FIELD(options);
2720 17030 : COMPARE_NODE_FIELD(whereClause);
2721 17030 : COMPARE_NODE_FIELD(excludeOpNames);
2722 17030 : COMPARE_STRING_FIELD(idxcomment);
2723 17030 : COMPARE_SCALAR_FIELD(indexOid);
2724 17030 : COMPARE_SCALAR_FIELD(oldNumber);
2725 17030 : COMPARE_SCALAR_FIELD(oldCreateSubid);
2726 17030 : COMPARE_SCALAR_FIELD(oldFirstRelfilelocatorSubid);
2727 17030 : COMPARE_SCALAR_FIELD(unique);
2728 17030 : COMPARE_SCALAR_FIELD(nulls_not_distinct);
2729 17030 : COMPARE_SCALAR_FIELD(primary);
2730 17030 : COMPARE_SCALAR_FIELD(isconstraint);
2731 17030 : COMPARE_SCALAR_FIELD(iswithoutoverlaps);
2732 17030 : COMPARE_SCALAR_FIELD(deferrable);
2733 17030 : COMPARE_SCALAR_FIELD(initdeferred);
2734 17030 : COMPARE_SCALAR_FIELD(transformed);
2735 17030 : COMPARE_SCALAR_FIELD(concurrent);
2736 17030 : COMPARE_SCALAR_FIELD(if_not_exists);
2737 17030 : COMPARE_SCALAR_FIELD(reset_default_tblspc);
2738 :
2739 17030 : return true;
2740 : }
2741 :
2742 : static bool
2743 2372 : _equalCreateStatsStmt(const CreateStatsStmt *a, const CreateStatsStmt *b)
2744 : {
2745 2372 : COMPARE_NODE_FIELD(defnames);
2746 2372 : COMPARE_NODE_FIELD(stat_types);
2747 2372 : COMPARE_NODE_FIELD(exprs);
2748 2372 : COMPARE_NODE_FIELD(relations);
2749 2372 : COMPARE_STRING_FIELD(stxcomment);
2750 2372 : COMPARE_SCALAR_FIELD(transformed);
2751 2372 : COMPARE_SCALAR_FIELD(if_not_exists);
2752 :
2753 2372 : return true;
2754 : }
2755 :
2756 : static bool
2757 5608 : _equalStatsElem(const StatsElem *a, const StatsElem *b)
2758 : {
2759 5608 : COMPARE_STRING_FIELD(name);
2760 5608 : COMPARE_NODE_FIELD(expr);
2761 :
2762 5608 : return true;
2763 : }
2764 :
2765 : static bool
2766 68 : _equalAlterStatsStmt(const AlterStatsStmt *a, const AlterStatsStmt *b)
2767 : {
2768 68 : COMPARE_NODE_FIELD(defnames);
2769 68 : COMPARE_NODE_FIELD(stxstattarget);
2770 68 : COMPARE_SCALAR_FIELD(missing_ok);
2771 :
2772 68 : return true;
2773 : }
2774 :
2775 : static bool
2776 51288 : _equalCreateFunctionStmt(const CreateFunctionStmt *a, const CreateFunctionStmt *b)
2777 : {
2778 51288 : COMPARE_SCALAR_FIELD(is_procedure);
2779 51288 : COMPARE_SCALAR_FIELD(replace);
2780 51288 : COMPARE_NODE_FIELD(funcname);
2781 51288 : COMPARE_NODE_FIELD(parameters);
2782 51288 : COMPARE_NODE_FIELD(returnType);
2783 51288 : COMPARE_NODE_FIELD(options);
2784 51288 : COMPARE_NODE_FIELD(sql_body);
2785 :
2786 51288 : return true;
2787 : }
2788 :
2789 : static bool
2790 133498 : _equalFunctionParameter(const FunctionParameter *a, const FunctionParameter *b)
2791 : {
2792 133498 : COMPARE_STRING_FIELD(name);
2793 133498 : COMPARE_NODE_FIELD(argType);
2794 133498 : COMPARE_SCALAR_FIELD(mode);
2795 133498 : COMPARE_NODE_FIELD(defexpr);
2796 : COMPARE_LOCATION_FIELD(location);
2797 :
2798 133498 : return true;
2799 : }
2800 :
2801 : static bool
2802 832 : _equalAlterFunctionStmt(const AlterFunctionStmt *a, const AlterFunctionStmt *b)
2803 : {
2804 832 : COMPARE_SCALAR_FIELD(objtype);
2805 832 : COMPARE_NODE_FIELD(func);
2806 832 : COMPARE_NODE_FIELD(actions);
2807 :
2808 832 : return true;
2809 : }
2810 :
2811 : static bool
2812 2580 : _equalDoStmt(const DoStmt *a, const DoStmt *b)
2813 : {
2814 2580 : COMPARE_NODE_FIELD(args);
2815 :
2816 2580 : return true;
2817 : }
2818 :
2819 : static bool
2820 1084 : _equalCallStmt(const CallStmt *a, const CallStmt *b)
2821 : {
2822 1084 : COMPARE_NODE_FIELD(funccall);
2823 1084 : COMPARE_NODE_FIELD(funcexpr);
2824 1084 : COMPARE_NODE_FIELD(outargs);
2825 :
2826 1084 : return true;
2827 : }
2828 :
2829 : static bool
2830 3800 : _equalRenameStmt(const RenameStmt *a, const RenameStmt *b)
2831 : {
2832 3800 : COMPARE_SCALAR_FIELD(renameType);
2833 3800 : COMPARE_SCALAR_FIELD(relationType);
2834 3800 : COMPARE_NODE_FIELD(relation);
2835 3800 : COMPARE_NODE_FIELD(object);
2836 3800 : COMPARE_STRING_FIELD(subname);
2837 3800 : COMPARE_STRING_FIELD(newname);
2838 3800 : COMPARE_SCALAR_FIELD(behavior);
2839 3800 : COMPARE_SCALAR_FIELD(missing_ok);
2840 :
2841 3800 : return true;
2842 : }
2843 :
2844 : static bool
2845 92 : _equalAlterObjectDependsStmt(const AlterObjectDependsStmt *a, const AlterObjectDependsStmt *b)
2846 : {
2847 92 : COMPARE_SCALAR_FIELD(objectType);
2848 92 : COMPARE_NODE_FIELD(relation);
2849 92 : COMPARE_NODE_FIELD(object);
2850 92 : COMPARE_NODE_FIELD(extname);
2851 92 : COMPARE_SCALAR_FIELD(remove);
2852 :
2853 92 : return true;
2854 : }
2855 :
2856 : static bool
2857 1124 : _equalAlterObjectSchemaStmt(const AlterObjectSchemaStmt *a, const AlterObjectSchemaStmt *b)
2858 : {
2859 1124 : COMPARE_SCALAR_FIELD(objectType);
2860 1124 : COMPARE_NODE_FIELD(relation);
2861 1124 : COMPARE_NODE_FIELD(object);
2862 1124 : COMPARE_STRING_FIELD(newschema);
2863 1124 : COMPARE_SCALAR_FIELD(missing_ok);
2864 :
2865 1124 : return true;
2866 : }
2867 :
2868 : static bool
2869 3964 : _equalAlterOwnerStmt(const AlterOwnerStmt *a, const AlterOwnerStmt *b)
2870 : {
2871 3964 : COMPARE_SCALAR_FIELD(objectType);
2872 3964 : COMPARE_NODE_FIELD(relation);
2873 3964 : COMPARE_NODE_FIELD(object);
2874 3964 : COMPARE_NODE_FIELD(newowner);
2875 :
2876 3964 : return true;
2877 : }
2878 :
2879 : static bool
2880 1328 : _equalAlterOperatorStmt(const AlterOperatorStmt *a, const AlterOperatorStmt *b)
2881 : {
2882 1328 : COMPARE_NODE_FIELD(opername);
2883 1328 : COMPARE_NODE_FIELD(options);
2884 :
2885 1328 : return true;
2886 : }
2887 :
2888 : static bool
2889 144 : _equalAlterTypeStmt(const AlterTypeStmt *a, const AlterTypeStmt *b)
2890 : {
2891 144 : COMPARE_NODE_FIELD(typeName);
2892 144 : COMPARE_NODE_FIELD(options);
2893 :
2894 144 : return true;
2895 : }
2896 :
2897 : static bool
2898 2808 : _equalRuleStmt(const RuleStmt *a, const RuleStmt *b)
2899 : {
2900 2808 : COMPARE_NODE_FIELD(relation);
2901 2808 : COMPARE_STRING_FIELD(rulename);
2902 2808 : COMPARE_NODE_FIELD(whereClause);
2903 2808 : COMPARE_SCALAR_FIELD(event);
2904 2808 : COMPARE_SCALAR_FIELD(instead);
2905 2808 : COMPARE_NODE_FIELD(actions);
2906 2808 : COMPARE_SCALAR_FIELD(replace);
2907 :
2908 2808 : return true;
2909 : }
2910 :
2911 : static bool
2912 367 : _equalNotifyStmt(const NotifyStmt *a, const NotifyStmt *b)
2913 : {
2914 367 : COMPARE_STRING_FIELD(conditionname);
2915 367 : COMPARE_STRING_FIELD(payload);
2916 :
2917 367 : return true;
2918 : }
2919 :
2920 : static bool
2921 240 : _equalListenStmt(const ListenStmt *a, const ListenStmt *b)
2922 : {
2923 240 : COMPARE_STRING_FIELD(conditionname);
2924 :
2925 240 : return true;
2926 : }
2927 :
2928 : static bool
2929 320 : _equalUnlistenStmt(const UnlistenStmt *a, const UnlistenStmt *b)
2930 : {
2931 320 : COMPARE_STRING_FIELD(conditionname);
2932 :
2933 320 : return true;
2934 : }
2935 :
2936 : static bool
2937 108380 : _equalTransactionStmt(const TransactionStmt *a, const TransactionStmt *b)
2938 : {
2939 108380 : COMPARE_SCALAR_FIELD(kind);
2940 108380 : COMPARE_NODE_FIELD(options);
2941 108380 : COMPARE_STRING_FIELD(savepoint_name);
2942 108380 : COMPARE_STRING_FIELD(gid);
2943 108380 : COMPARE_SCALAR_FIELD(chain);
2944 : COMPARE_LOCATION_FIELD(location);
2945 :
2946 108380 : return true;
2947 : }
2948 :
2949 : static bool
2950 5672 : _equalCompositeTypeStmt(const CompositeTypeStmt *a, const CompositeTypeStmt *b)
2951 : {
2952 5672 : COMPARE_NODE_FIELD(typevar);
2953 5672 : COMPARE_NODE_FIELD(coldeflist);
2954 :
2955 5672 : return true;
2956 : }
2957 :
2958 : static bool
2959 528 : _equalCreateEnumStmt(const CreateEnumStmt *a, const CreateEnumStmt *b)
2960 : {
2961 528 : COMPARE_NODE_FIELD(typeName);
2962 528 : COMPARE_NODE_FIELD(vals);
2963 :
2964 528 : return true;
2965 : }
2966 :
2967 : static bool
2968 544 : _equalCreateRangeStmt(const CreateRangeStmt *a, const CreateRangeStmt *b)
2969 : {
2970 544 : COMPARE_NODE_FIELD(typeName);
2971 544 : COMPARE_NODE_FIELD(params);
2972 :
2973 544 : return true;
2974 : }
2975 :
2976 : static bool
2977 984 : _equalAlterEnumStmt(const AlterEnumStmt *a, const AlterEnumStmt *b)
2978 : {
2979 984 : COMPARE_NODE_FIELD(typeName);
2980 984 : COMPARE_STRING_FIELD(oldVal);
2981 984 : COMPARE_STRING_FIELD(newVal);
2982 984 : COMPARE_STRING_FIELD(newValNeighbor);
2983 984 : COMPARE_SCALAR_FIELD(newValIsAfter);
2984 984 : COMPARE_SCALAR_FIELD(skipIfNewValExists);
2985 :
2986 984 : return true;
2987 : }
2988 :
2989 : static bool
2990 43662 : _equalViewStmt(const ViewStmt *a, const ViewStmt *b)
2991 : {
2992 43662 : COMPARE_NODE_FIELD(view);
2993 43662 : COMPARE_NODE_FIELD(aliases);
2994 43662 : COMPARE_NODE_FIELD(query);
2995 43662 : COMPARE_SCALAR_FIELD(replace);
2996 43662 : COMPARE_NODE_FIELD(options);
2997 43662 : COMPARE_SCALAR_FIELD(withCheckOption);
2998 :
2999 43662 : return true;
3000 : }
3001 :
3002 : static bool
3003 180 : _equalLoadStmt(const LoadStmt *a, const LoadStmt *b)
3004 : {
3005 180 : COMPARE_STRING_FIELD(filename);
3006 :
3007 180 : return true;
3008 : }
3009 :
3010 : static bool
3011 1812 : _equalCreatedbStmt(const CreatedbStmt *a, const CreatedbStmt *b)
3012 : {
3013 1812 : COMPARE_STRING_FIELD(dbname);
3014 1812 : COMPARE_NODE_FIELD(options);
3015 :
3016 1812 : return true;
3017 : }
3018 :
3019 : static bool
3020 224 : _equalAlterDatabaseStmt(const AlterDatabaseStmt *a, const AlterDatabaseStmt *b)
3021 : {
3022 224 : COMPARE_STRING_FIELD(dbname);
3023 224 : COMPARE_NODE_FIELD(options);
3024 :
3025 224 : return true;
3026 : }
3027 :
3028 : static bool
3029 16 : _equalAlterDatabaseRefreshCollStmt(const AlterDatabaseRefreshCollStmt *a, const AlterDatabaseRefreshCollStmt *b)
3030 : {
3031 16 : COMPARE_STRING_FIELD(dbname);
3032 :
3033 16 : return true;
3034 : }
3035 :
3036 : static bool
3037 2656 : _equalAlterDatabaseSetStmt(const AlterDatabaseSetStmt *a, const AlterDatabaseSetStmt *b)
3038 : {
3039 2656 : COMPARE_STRING_FIELD(dbname);
3040 2656 : COMPARE_NODE_FIELD(setstmt);
3041 :
3042 2656 : return true;
3043 : }
3044 :
3045 : static bool
3046 324 : _equalDropdbStmt(const DropdbStmt *a, const DropdbStmt *b)
3047 : {
3048 324 : COMPARE_STRING_FIELD(dbname);
3049 324 : COMPARE_SCALAR_FIELD(missing_ok);
3050 324 : COMPARE_NODE_FIELD(options);
3051 :
3052 324 : return true;
3053 : }
3054 :
3055 : static bool
3056 468 : _equalAlterSystemStmt(const AlterSystemStmt *a, const AlterSystemStmt *b)
3057 : {
3058 468 : COMPARE_NODE_FIELD(setstmt);
3059 :
3060 468 : return true;
3061 : }
3062 :
3063 : static bool
3064 34588 : _equalVacuumStmt(const VacuumStmt *a, const VacuumStmt *b)
3065 : {
3066 34588 : COMPARE_NODE_FIELD(options);
3067 34588 : COMPARE_NODE_FIELD(rels);
3068 34588 : COMPARE_SCALAR_FIELD(is_vacuumcmd);
3069 :
3070 34588 : return true;
3071 : }
3072 :
3073 : static bool
3074 34932 : _equalVacuumRelation(const VacuumRelation *a, const VacuumRelation *b)
3075 : {
3076 34932 : COMPARE_NODE_FIELD(relation);
3077 34932 : COMPARE_SCALAR_FIELD(oid);
3078 34932 : COMPARE_NODE_FIELD(va_cols);
3079 :
3080 34932 : return true;
3081 : }
3082 :
3083 : static bool
3084 764 : _equalRepackStmt(const RepackStmt *a, const RepackStmt *b)
3085 : {
3086 764 : COMPARE_SCALAR_FIELD(command);
3087 764 : COMPARE_NODE_FIELD(relation);
3088 764 : COMPARE_STRING_FIELD(indexname);
3089 764 : COMPARE_SCALAR_FIELD(usingindex);
3090 764 : COMPARE_NODE_FIELD(params);
3091 :
3092 764 : return true;
3093 : }
3094 :
3095 : static bool
3096 54324 : _equalExplainStmt(const ExplainStmt *a, const ExplainStmt *b)
3097 : {
3098 54324 : COMPARE_NODE_FIELD(query);
3099 54324 : COMPARE_NODE_FIELD(options);
3100 :
3101 54324 : return true;
3102 : }
3103 :
3104 : static bool
3105 4960 : _equalCreateTableAsStmt(const CreateTableAsStmt *a, const CreateTableAsStmt *b)
3106 : {
3107 4960 : COMPARE_NODE_FIELD(query);
3108 4960 : COMPARE_NODE_FIELD(into);
3109 4960 : COMPARE_SCALAR_FIELD(objtype);
3110 4960 : COMPARE_SCALAR_FIELD(is_select_into);
3111 4960 : COMPARE_SCALAR_FIELD(if_not_exists);
3112 :
3113 4960 : return true;
3114 : }
3115 :
3116 : static bool
3117 696 : _equalRefreshMatViewStmt(const RefreshMatViewStmt *a, const RefreshMatViewStmt *b)
3118 : {
3119 696 : COMPARE_SCALAR_FIELD(concurrent);
3120 696 : COMPARE_SCALAR_FIELD(skipData);
3121 696 : COMPARE_NODE_FIELD(relation);
3122 :
3123 696 : return true;
3124 : }
3125 :
3126 : static bool
3127 574 : _equalCheckPointStmt(const CheckPointStmt *a, const CheckPointStmt *b)
3128 : {
3129 574 : COMPARE_NODE_FIELD(options);
3130 :
3131 574 : return true;
3132 : }
3133 :
3134 : static bool
3135 96 : _equalDiscardStmt(const DiscardStmt *a, const DiscardStmt *b)
3136 : {
3137 96 : COMPARE_SCALAR_FIELD(target);
3138 :
3139 96 : return true;
3140 : }
3141 :
3142 : static bool
3143 2580 : _equalLockStmt(const LockStmt *a, const LockStmt *b)
3144 : {
3145 2580 : COMPARE_NODE_FIELD(relations);
3146 2580 : COMPARE_SCALAR_FIELD(mode);
3147 2580 : COMPARE_SCALAR_FIELD(nowait);
3148 :
3149 2580 : return true;
3150 : }
3151 :
3152 : static bool
3153 282 : _equalConstraintsSetStmt(const ConstraintsSetStmt *a, const ConstraintsSetStmt *b)
3154 : {
3155 282 : COMPARE_NODE_FIELD(constraints);
3156 282 : COMPARE_SCALAR_FIELD(deferred);
3157 :
3158 282 : return true;
3159 : }
3160 :
3161 : static bool
3162 2776 : _equalReindexStmt(const ReindexStmt *a, const ReindexStmt *b)
3163 : {
3164 2776 : COMPARE_SCALAR_FIELD(kind);
3165 2776 : COMPARE_NODE_FIELD(relation);
3166 2776 : COMPARE_STRING_FIELD(name);
3167 2776 : COMPARE_NODE_FIELD(params);
3168 :
3169 2776 : return true;
3170 : }
3171 :
3172 : static bool
3173 168 : _equalCreateConversionStmt(const CreateConversionStmt *a, const CreateConversionStmt *b)
3174 : {
3175 168 : COMPARE_NODE_FIELD(conversion_name);
3176 168 : COMPARE_STRING_FIELD(for_encoding_name);
3177 168 : COMPARE_STRING_FIELD(to_encoding_name);
3178 168 : COMPARE_NODE_FIELD(func_name);
3179 168 : COMPARE_SCALAR_FIELD(def);
3180 :
3181 168 : return true;
3182 : }
3183 :
3184 : static bool
3185 648 : _equalCreateCastStmt(const CreateCastStmt *a, const CreateCastStmt *b)
3186 : {
3187 648 : COMPARE_NODE_FIELD(sourcetype);
3188 648 : COMPARE_NODE_FIELD(targettype);
3189 648 : COMPARE_NODE_FIELD(func);
3190 648 : COMPARE_SCALAR_FIELD(context);
3191 648 : COMPARE_SCALAR_FIELD(inout);
3192 :
3193 648 : return true;
3194 : }
3195 :
3196 : static bool
3197 804 : _equalCreatePropGraphStmt(const CreatePropGraphStmt *a, const CreatePropGraphStmt *b)
3198 : {
3199 804 : COMPARE_NODE_FIELD(pgname);
3200 804 : COMPARE_NODE_FIELD(vertex_tables);
3201 804 : COMPARE_NODE_FIELD(edge_tables);
3202 :
3203 804 : return true;
3204 : }
3205 :
3206 : static bool
3207 1592 : _equalPropGraphVertex(const PropGraphVertex *a, const PropGraphVertex *b)
3208 : {
3209 1592 : COMPARE_NODE_FIELD(vtable);
3210 1592 : COMPARE_NODE_FIELD(vkey);
3211 1592 : COMPARE_NODE_FIELD(labels);
3212 : COMPARE_LOCATION_FIELD(location);
3213 :
3214 1592 : return true;
3215 : }
3216 :
3217 : static bool
3218 852 : _equalPropGraphEdge(const PropGraphEdge *a, const PropGraphEdge *b)
3219 : {
3220 852 : COMPARE_NODE_FIELD(etable);
3221 852 : COMPARE_NODE_FIELD(ekey);
3222 852 : COMPARE_NODE_FIELD(esrckey);
3223 852 : COMPARE_STRING_FIELD(esrcvertex);
3224 852 : COMPARE_NODE_FIELD(esrcvertexcols);
3225 852 : COMPARE_NODE_FIELD(edestkey);
3226 852 : COMPARE_STRING_FIELD(edestvertex);
3227 852 : COMPARE_NODE_FIELD(edestvertexcols);
3228 852 : COMPARE_NODE_FIELD(labels);
3229 : COMPARE_LOCATION_FIELD(location);
3230 :
3231 852 : return true;
3232 : }
3233 :
3234 : static bool
3235 3020 : _equalPropGraphLabelAndProperties(const PropGraphLabelAndProperties *a, const PropGraphLabelAndProperties *b)
3236 : {
3237 3020 : COMPARE_STRING_FIELD(label);
3238 3020 : COMPARE_NODE_FIELD(properties);
3239 : COMPARE_LOCATION_FIELD(location);
3240 :
3241 3020 : return true;
3242 : }
3243 :
3244 : static bool
3245 3052 : _equalPropGraphProperties(const PropGraphProperties *a, const PropGraphProperties *b)
3246 : {
3247 3052 : COMPARE_NODE_FIELD(properties);
3248 3052 : COMPARE_SCALAR_FIELD(all);
3249 : COMPARE_LOCATION_FIELD(location);
3250 :
3251 3052 : return true;
3252 : }
3253 :
3254 : static bool
3255 496 : _equalAlterPropGraphStmt(const AlterPropGraphStmt *a, const AlterPropGraphStmt *b)
3256 : {
3257 496 : COMPARE_NODE_FIELD(pgname);
3258 496 : COMPARE_SCALAR_FIELD(missing_ok);
3259 496 : COMPARE_NODE_FIELD(add_vertex_tables);
3260 496 : COMPARE_NODE_FIELD(add_edge_tables);
3261 496 : COMPARE_NODE_FIELD(drop_vertex_tables);
3262 496 : COMPARE_NODE_FIELD(drop_edge_tables);
3263 496 : COMPARE_SCALAR_FIELD(drop_behavior);
3264 496 : COMPARE_SCALAR_FIELD(element_kind);
3265 496 : COMPARE_STRING_FIELD(element_alias);
3266 496 : COMPARE_NODE_FIELD(add_labels);
3267 496 : COMPARE_STRING_FIELD(drop_label);
3268 496 : COMPARE_STRING_FIELD(alter_label);
3269 496 : COMPARE_NODE_FIELD(add_properties);
3270 496 : COMPARE_NODE_FIELD(drop_properties);
3271 :
3272 496 : return true;
3273 : }
3274 :
3275 : static bool
3276 104 : _equalCreateTransformStmt(const CreateTransformStmt *a, const CreateTransformStmt *b)
3277 : {
3278 104 : COMPARE_SCALAR_FIELD(replace);
3279 104 : COMPARE_NODE_FIELD(type_name);
3280 104 : COMPARE_STRING_FIELD(lang);
3281 104 : COMPARE_NODE_FIELD(fromsql);
3282 104 : COMPARE_NODE_FIELD(tosql);
3283 :
3284 104 : return true;
3285 : }
3286 :
3287 : static bool
3288 4740 : _equalPrepareStmt(const PrepareStmt *a, const PrepareStmt *b)
3289 : {
3290 4740 : COMPARE_STRING_FIELD(name);
3291 4740 : COMPARE_NODE_FIELD(argtypes);
3292 4740 : COMPARE_NODE_FIELD(query);
3293 :
3294 4740 : return true;
3295 : }
3296 :
3297 : static bool
3298 35900 : _equalExecuteStmt(const ExecuteStmt *a, const ExecuteStmt *b)
3299 : {
3300 35900 : COMPARE_STRING_FIELD(name);
3301 35900 : COMPARE_NODE_FIELD(params);
3302 :
3303 35900 : return true;
3304 : }
3305 :
3306 : static bool
3307 8372 : _equalDeallocateStmt(const DeallocateStmt *a, const DeallocateStmt *b)
3308 : {
3309 8372 : COMPARE_STRING_FIELD(name);
3310 8372 : COMPARE_SCALAR_FIELD(isall);
3311 : COMPARE_LOCATION_FIELD(location);
3312 :
3313 8372 : return true;
3314 : }
3315 :
3316 : static bool
3317 376 : _equalDropOwnedStmt(const DropOwnedStmt *a, const DropOwnedStmt *b)
3318 : {
3319 376 : COMPARE_NODE_FIELD(roles);
3320 376 : COMPARE_SCALAR_FIELD(behavior);
3321 :
3322 376 : return true;
3323 : }
3324 :
3325 : static bool
3326 136 : _equalReassignOwnedStmt(const ReassignOwnedStmt *a, const ReassignOwnedStmt *b)
3327 : {
3328 136 : COMPARE_NODE_FIELD(roles);
3329 136 : COMPARE_NODE_FIELD(newrole);
3330 :
3331 136 : return true;
3332 : }
3333 :
3334 : static bool
3335 92 : _equalAlterTSDictionaryStmt(const AlterTSDictionaryStmt *a, const AlterTSDictionaryStmt *b)
3336 : {
3337 92 : COMPARE_NODE_FIELD(dictname);
3338 92 : COMPARE_NODE_FIELD(options);
3339 :
3340 92 : return true;
3341 : }
3342 :
3343 : static bool
3344 21000 : _equalAlterTSConfigurationStmt(const AlterTSConfigurationStmt *a, const AlterTSConfigurationStmt *b)
3345 : {
3346 21000 : COMPARE_SCALAR_FIELD(kind);
3347 21000 : COMPARE_NODE_FIELD(cfgname);
3348 21000 : COMPARE_NODE_FIELD(tokentype);
3349 21000 : COMPARE_NODE_FIELD(dicts);
3350 21000 : COMPARE_SCALAR_FIELD(override);
3351 21000 : COMPARE_SCALAR_FIELD(replace);
3352 21000 : COMPARE_SCALAR_FIELD(missing_ok);
3353 :
3354 21000 : return true;
3355 : }
3356 :
3357 : static bool
3358 4084 : _equalPublicationTable(const PublicationTable *a, const PublicationTable *b)
3359 : {
3360 4084 : COMPARE_NODE_FIELD(relation);
3361 4084 : COMPARE_NODE_FIELD(whereClause);
3362 4084 : COMPARE_NODE_FIELD(columns);
3363 4084 : COMPARE_SCALAR_FIELD(except);
3364 :
3365 4084 : return true;
3366 : }
3367 :
3368 : static bool
3369 5140 : _equalPublicationObjSpec(const PublicationObjSpec *a, const PublicationObjSpec *b)
3370 : {
3371 5140 : COMPARE_SCALAR_FIELD(pubobjtype);
3372 5140 : COMPARE_STRING_FIELD(name);
3373 5140 : COMPARE_NODE_FIELD(pubtable);
3374 : COMPARE_LOCATION_FIELD(location);
3375 :
3376 5140 : return true;
3377 : }
3378 :
3379 : static bool
3380 0 : _equalPublicationAllObjSpec(const PublicationAllObjSpec *a, const PublicationAllObjSpec *b)
3381 : {
3382 0 : COMPARE_SCALAR_FIELD(pubobjtype);
3383 0 : COMPARE_NODE_FIELD(except_tables);
3384 : COMPARE_LOCATION_FIELD(location);
3385 :
3386 0 : return true;
3387 : }
3388 :
3389 : static bool
3390 2524 : _equalCreatePublicationStmt(const CreatePublicationStmt *a, const CreatePublicationStmt *b)
3391 : {
3392 2524 : COMPARE_STRING_FIELD(pubname);
3393 2524 : COMPARE_NODE_FIELD(options);
3394 2524 : COMPARE_NODE_FIELD(pubobjects);
3395 2524 : COMPARE_SCALAR_FIELD(for_all_tables);
3396 2524 : COMPARE_SCALAR_FIELD(for_all_sequences);
3397 :
3398 2524 : return true;
3399 : }
3400 :
3401 : static bool
3402 3124 : _equalAlterPublicationStmt(const AlterPublicationStmt *a, const AlterPublicationStmt *b)
3403 : {
3404 3124 : COMPARE_STRING_FIELD(pubname);
3405 3124 : COMPARE_NODE_FIELD(options);
3406 3124 : COMPARE_NODE_FIELD(pubobjects);
3407 3124 : COMPARE_SCALAR_FIELD(action);
3408 3124 : COMPARE_SCALAR_FIELD(for_all_tables);
3409 3124 : COMPARE_SCALAR_FIELD(for_all_sequences);
3410 :
3411 3124 : return true;
3412 : }
3413 :
3414 : static bool
3415 1216 : _equalCreateSubscriptionStmt(const CreateSubscriptionStmt *a, const CreateSubscriptionStmt *b)
3416 : {
3417 1216 : COMPARE_STRING_FIELD(subname);
3418 1216 : COMPARE_STRING_FIELD(servername);
3419 1216 : COMPARE_STRING_FIELD(conninfo);
3420 1216 : COMPARE_NODE_FIELD(publication);
3421 1216 : COMPARE_NODE_FIELD(options);
3422 :
3423 1216 : return true;
3424 : }
3425 :
3426 : static bool
3427 1366 : _equalAlterSubscriptionStmt(const AlterSubscriptionStmt *a, const AlterSubscriptionStmt *b)
3428 : {
3429 1366 : COMPARE_SCALAR_FIELD(kind);
3430 1366 : COMPARE_STRING_FIELD(subname);
3431 1366 : COMPARE_STRING_FIELD(servername);
3432 1366 : COMPARE_STRING_FIELD(conninfo);
3433 1366 : COMPARE_NODE_FIELD(publication);
3434 1366 : COMPARE_NODE_FIELD(options);
3435 :
3436 1366 : return true;
3437 : }
3438 :
3439 : static bool
3440 620 : _equalDropSubscriptionStmt(const DropSubscriptionStmt *a, const DropSubscriptionStmt *b)
3441 : {
3442 620 : COMPARE_STRING_FIELD(subname);
3443 620 : COMPARE_SCALAR_FIELD(missing_ok);
3444 620 : COMPARE_SCALAR_FIELD(behavior);
3445 :
3446 620 : return true;
3447 : }
3448 :
3449 : static bool
3450 902 : _equalWaitStmt(const WaitStmt *a, const WaitStmt *b)
3451 : {
3452 902 : COMPARE_STRING_FIELD(lsn_literal);
3453 902 : COMPARE_NODE_FIELD(options);
3454 :
3455 902 : return true;
3456 : }
3457 :
3458 : static bool
3459 0 : _equalPathKey(const PathKey *a, const PathKey *b)
3460 : {
3461 0 : COMPARE_SCALAR_FIELD(pk_eclass);
3462 0 : COMPARE_SCALAR_FIELD(pk_opfamily);
3463 0 : COMPARE_SCALAR_FIELD(pk_cmptype);
3464 0 : COMPARE_SCALAR_FIELD(pk_nulls_first);
3465 :
3466 0 : return true;
3467 : }
3468 :
3469 : static bool
3470 0 : _equalGroupByOrdering(const GroupByOrdering *a, const GroupByOrdering *b)
3471 : {
3472 0 : COMPARE_NODE_FIELD(pathkeys);
3473 0 : COMPARE_NODE_FIELD(clauses);
3474 :
3475 0 : return true;
3476 : }
3477 :
3478 : static bool
3479 680 : _equalRestrictInfo(const RestrictInfo *a, const RestrictInfo *b)
3480 : {
3481 680 : COMPARE_NODE_FIELD(clause);
3482 122 : COMPARE_SCALAR_FIELD(is_pushed_down);
3483 122 : COMPARE_SCALAR_FIELD(has_clone);
3484 122 : COMPARE_SCALAR_FIELD(is_clone);
3485 122 : COMPARE_SCALAR_FIELD(security_level);
3486 122 : COMPARE_BITMAPSET_FIELD(required_relids);
3487 112 : COMPARE_BITMAPSET_FIELD(incompatible_relids);
3488 112 : COMPARE_BITMAPSET_FIELD(outer_relids);
3489 112 : COMPARE_SCALAR_FIELD(rinfo_serial);
3490 :
3491 112 : return true;
3492 : }
3493 :
3494 : static bool
3495 5924 : _equalPlaceHolderVar(const PlaceHolderVar *a, const PlaceHolderVar *b)
3496 : {
3497 5924 : COMPARE_BITMAPSET_FIELD(phnullingrels);
3498 5191 : COMPARE_SCALAR_FIELD(phid);
3499 3772 : COMPARE_SCALAR_FIELD(phlevelsup);
3500 :
3501 3772 : return true;
3502 : }
3503 :
3504 : static bool
3505 0 : _equalSpecialJoinInfo(const SpecialJoinInfo *a, const SpecialJoinInfo *b)
3506 : {
3507 0 : COMPARE_BITMAPSET_FIELD(min_lefthand);
3508 0 : COMPARE_BITMAPSET_FIELD(min_righthand);
3509 0 : COMPARE_BITMAPSET_FIELD(syn_lefthand);
3510 0 : COMPARE_BITMAPSET_FIELD(syn_righthand);
3511 0 : COMPARE_SCALAR_FIELD(jointype);
3512 0 : COMPARE_SCALAR_FIELD(ojrelid);
3513 0 : COMPARE_BITMAPSET_FIELD(commute_above_l);
3514 0 : COMPARE_BITMAPSET_FIELD(commute_above_r);
3515 0 : COMPARE_BITMAPSET_FIELD(commute_below_l);
3516 0 : COMPARE_BITMAPSET_FIELD(commute_below_r);
3517 0 : COMPARE_SCALAR_FIELD(lhs_strict);
3518 0 : COMPARE_SCALAR_FIELD(semi_can_btree);
3519 0 : COMPARE_SCALAR_FIELD(semi_can_hash);
3520 0 : COMPARE_NODE_FIELD(semi_operators);
3521 0 : COMPARE_NODE_FIELD(semi_rhs_exprs);
3522 :
3523 0 : return true;
3524 : }
3525 :
3526 : static bool
3527 0 : _equalAppendRelInfo(const AppendRelInfo *a, const AppendRelInfo *b)
3528 : {
3529 0 : COMPARE_SCALAR_FIELD(parent_relid);
3530 0 : COMPARE_SCALAR_FIELD(child_relid);
3531 0 : COMPARE_SCALAR_FIELD(parent_reltype);
3532 0 : COMPARE_SCALAR_FIELD(child_reltype);
3533 0 : COMPARE_NODE_FIELD(translated_vars);
3534 0 : COMPARE_SCALAR_FIELD(num_child_cols);
3535 0 : COMPARE_POINTER_FIELD(parent_colnos, a->num_child_cols * sizeof(AttrNumber));
3536 0 : COMPARE_SCALAR_FIELD(parent_reloid);
3537 :
3538 0 : return true;
3539 : }
3540 :
3541 : static bool
3542 0 : _equalPlaceHolderInfo(const PlaceHolderInfo *a, const PlaceHolderInfo *b)
3543 : {
3544 0 : COMPARE_SCALAR_FIELD(phid);
3545 0 : COMPARE_NODE_FIELD(ph_var);
3546 0 : COMPARE_BITMAPSET_FIELD(ph_eval_at);
3547 0 : COMPARE_BITMAPSET_FIELD(ph_lateral);
3548 0 : COMPARE_BITMAPSET_FIELD(ph_needed);
3549 0 : COMPARE_SCALAR_FIELD(ph_width);
3550 :
3551 0 : return true;
3552 : }
3553 :
3554 : static bool
3555 160 : _equalAggClauseInfo(const AggClauseInfo *a, const AggClauseInfo *b)
3556 : {
3557 160 : COMPARE_NODE_FIELD(aggref);
3558 5 : COMPARE_BITMAPSET_FIELD(agg_eval_at);
3559 :
3560 5 : return true;
3561 : }
3562 :
3563 : static bool
3564 0 : _equalGroupingExprInfo(const GroupingExprInfo *a, const GroupingExprInfo *b)
3565 : {
3566 0 : COMPARE_NODE_FIELD(expr);
3567 0 : COMPARE_SCALAR_FIELD(sortgroupref);
3568 0 : COMPARE_SCALAR_FIELD(ec);
3569 :
3570 0 : return true;
3571 : }
3572 :
3573 : static bool
3574 0 : _equalSubPlanRTInfo(const SubPlanRTInfo *a, const SubPlanRTInfo *b)
3575 : {
3576 0 : COMPARE_STRING_FIELD(plan_name);
3577 0 : COMPARE_SCALAR_FIELD(rtoffset);
3578 0 : COMPARE_SCALAR_FIELD(dummy);
3579 :
3580 0 : return true;
3581 : }
3582 :
3583 : static bool
3584 0 : _equalElidedNode(const ElidedNode *a, const ElidedNode *b)
3585 : {
3586 0 : COMPARE_SCALAR_FIELD(plan_node_id);
3587 0 : COMPARE_SCALAR_FIELD(elided_type);
3588 0 : COMPARE_BITMAPSET_FIELD(relids);
3589 :
3590 0 : return true;
3591 : }
3592 :
3593 : static bool
3594 627854 : _equalInteger(const Integer *a, const Integer *b)
3595 : {
3596 627854 : COMPARE_SCALAR_FIELD(ival);
3597 :
3598 627854 : return true;
3599 : }
3600 :
3601 : static bool
3602 16118 : _equalFloat(const Float *a, const Float *b)
3603 : {
3604 16118 : COMPARE_STRING_FIELD(fval);
3605 :
3606 16118 : return true;
3607 : }
3608 :
3609 : static bool
3610 113950 : _equalBoolean(const Boolean *a, const Boolean *b)
3611 : {
3612 113950 : COMPARE_SCALAR_FIELD(boolval);
3613 :
3614 113950 : return true;
3615 : }
3616 :
3617 : static bool
3618 22405456 : _equalString(const String *a, const String *b)
3619 : {
3620 22405456 : COMPARE_STRING_FIELD(sval);
3621 :
3622 21897762 : return true;
3623 : }
3624 :
3625 : static bool
3626 5454 : _equalBitString(const BitString *a, const BitString *b)
3627 : {
3628 5454 : COMPARE_STRING_FIELD(bsval);
3629 :
3630 5454 : return true;
3631 : }
|