LCOV - code coverage report
Current view: top level - src/backend/nodes - equalfuncs.funcs.c (source / functions) Hit Total Coverage
Test: PostgreSQL 19devel Lines: 1817 1891 96.1 %
Date: 2025-10-10 11:17:28 Functions: 265 275 96.4 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.16