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

Generated by: LCOV version 1.16