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