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

Generated by: LCOV version 1.16