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

Generated by: LCOV version 1.14