LCOV - code coverage report
Current view: top level - src/backend/nodes - equalfuncs.funcs.c (source / functions) Hit Total Coverage
Test: PostgreSQL 18devel Lines: 1764 1844 95.7 %
Date: 2024-11-21 08:14:44 Functions: 258 268 96.3 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.14