aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2024-11-07 12:29:36 +0300
committervvvv <vvvv@yandex-team.com>2024-11-07 13:49:47 +0300
commitd4c258e9431675bab6745c8638df6e3dfd4dca6b (patch)
treeb5efcfa11351152a4c872fccaea35749141c0b11 /yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c
parent13a4f274caef5cfdaf0263b24e4d6bdd5521472b (diff)
downloadydb-d4c258e9431675bab6745c8638df6e3dfd4dca6b.tar.gz
Moved other yql/essentials libs YQL-19206
init commit_hash:7d4c435602078407bbf20dd3c32f9c90d2bbcbc0
Diffstat (limited to 'yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c')
-rw-r--r--yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c4754
1 files changed, 4754 insertions, 0 deletions
diff --git a/yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c b/yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c
new file mode 100644
index 00000000000..c944e02e029
--- /dev/null
+++ b/yql/essentials/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.funcs.c
@@ -0,0 +1,4754 @@
+/*-------------------------------------------------------------------------
+ *
+ * readfuncs.funcs.c
+ * Generated node infrastructure code
+ *
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * NOTES
+ * ******************************
+ * *** DO NOT EDIT THIS FILE! ***
+ * ******************************
+ *
+ * It has been GENERATED by src/backend/nodes/gen_node_support.pl
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "access/amapi.h"
+#include "access/sdir.h"
+#include "access/tableam.h"
+#include "access/tsmapi.h"
+#include "commands/event_trigger.h"
+#include "commands/trigger.h"
+#include "executor/tuptable.h"
+#include "foreign/fdwapi.h"
+#include "nodes/bitmapset.h"
+#include "nodes/execnodes.h"
+#include "nodes/extensible.h"
+#include "nodes/lockoptions.h"
+#include "nodes/miscnodes.h"
+#include "nodes/nodes.h"
+#include "nodes/parsenodes.h"
+#include "nodes/pathnodes.h"
+#include "nodes/plannodes.h"
+#include "nodes/primnodes.h"
+#include "nodes/replnodes.h"
+#include "nodes/supportnodes.h"
+#include "nodes/value.h"
+#include "utils/rel.h"
+
+static Alias *
+_readAlias(void)
+{
+ READ_LOCALS(Alias);
+
+ READ_STRING_FIELD(aliasname);
+ READ_NODE_FIELD(colnames);
+
+ READ_DONE();
+}
+
+static RangeVar *
+_readRangeVar(void)
+{
+ READ_LOCALS(RangeVar);
+
+ READ_STRING_FIELD(catalogname);
+ READ_STRING_FIELD(schemaname);
+ READ_STRING_FIELD(relname);
+ READ_BOOL_FIELD(inh);
+ READ_CHAR_FIELD(relpersistence);
+ READ_NODE_FIELD(alias);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static TableFunc *
+_readTableFunc(void)
+{
+ READ_LOCALS(TableFunc);
+
+ READ_NODE_FIELD(ns_uris);
+ READ_NODE_FIELD(ns_names);
+ READ_NODE_FIELD(docexpr);
+ READ_NODE_FIELD(rowexpr);
+ READ_NODE_FIELD(colnames);
+ READ_NODE_FIELD(coltypes);
+ READ_NODE_FIELD(coltypmods);
+ READ_NODE_FIELD(colcollations);
+ READ_NODE_FIELD(colexprs);
+ READ_NODE_FIELD(coldefexprs);
+ READ_BITMAPSET_FIELD(notnulls);
+ READ_INT_FIELD(ordinalitycol);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static IntoClause *
+_readIntoClause(void)
+{
+ READ_LOCALS(IntoClause);
+
+ READ_NODE_FIELD(rel);
+ READ_NODE_FIELD(colNames);
+ READ_STRING_FIELD(accessMethod);
+ READ_NODE_FIELD(options);
+ READ_ENUM_FIELD(onCommit, OnCommitAction);
+ READ_STRING_FIELD(tableSpaceName);
+ READ_NODE_FIELD(viewQuery);
+ READ_BOOL_FIELD(skipData);
+
+ READ_DONE();
+}
+
+static Var *
+_readVar(void)
+{
+ READ_LOCALS(Var);
+
+ READ_INT_FIELD(varno);
+ READ_INT_FIELD(varattno);
+ READ_OID_FIELD(vartype);
+ READ_INT_FIELD(vartypmod);
+ READ_OID_FIELD(varcollid);
+ READ_BITMAPSET_FIELD(varnullingrels);
+ READ_UINT_FIELD(varlevelsup);
+ READ_UINT_FIELD(varnosyn);
+ READ_INT_FIELD(varattnosyn);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static Param *
+_readParam(void)
+{
+ READ_LOCALS(Param);
+
+ READ_ENUM_FIELD(paramkind, ParamKind);
+ READ_INT_FIELD(paramid);
+ READ_OID_FIELD(paramtype);
+ READ_INT_FIELD(paramtypmod);
+ READ_OID_FIELD(paramcollid);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static Aggref *
+_readAggref(void)
+{
+ READ_LOCALS(Aggref);
+
+ READ_OID_FIELD(aggfnoid);
+ READ_OID_FIELD(aggtype);
+ READ_OID_FIELD(aggcollid);
+ READ_OID_FIELD(inputcollid);
+ READ_OID_FIELD(aggtranstype);
+ READ_NODE_FIELD(aggargtypes);
+ READ_NODE_FIELD(aggdirectargs);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(aggorder);
+ READ_NODE_FIELD(aggdistinct);
+ READ_NODE_FIELD(aggfilter);
+ READ_BOOL_FIELD(aggstar);
+ READ_BOOL_FIELD(aggvariadic);
+ READ_CHAR_FIELD(aggkind);
+ READ_BOOL_FIELD(aggpresorted);
+ READ_UINT_FIELD(agglevelsup);
+ READ_ENUM_FIELD(aggsplit, AggSplit);
+ READ_INT_FIELD(aggno);
+ READ_INT_FIELD(aggtransno);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static GroupingFunc *
+_readGroupingFunc(void)
+{
+ READ_LOCALS(GroupingFunc);
+
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(refs);
+ READ_NODE_FIELD(cols);
+ READ_UINT_FIELD(agglevelsup);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static WindowFunc *
+_readWindowFunc(void)
+{
+ READ_LOCALS(WindowFunc);
+
+ READ_OID_FIELD(winfnoid);
+ READ_OID_FIELD(wintype);
+ READ_OID_FIELD(wincollid);
+ READ_OID_FIELD(inputcollid);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(aggfilter);
+ READ_UINT_FIELD(winref);
+ READ_BOOL_FIELD(winstar);
+ READ_BOOL_FIELD(winagg);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static SubscriptingRef *
+_readSubscriptingRef(void)
+{
+ READ_LOCALS(SubscriptingRef);
+
+ READ_OID_FIELD(refcontainertype);
+ READ_OID_FIELD(refelemtype);
+ READ_OID_FIELD(refrestype);
+ READ_INT_FIELD(reftypmod);
+ READ_OID_FIELD(refcollid);
+ READ_NODE_FIELD(refupperindexpr);
+ READ_NODE_FIELD(reflowerindexpr);
+ READ_NODE_FIELD(refexpr);
+ READ_NODE_FIELD(refassgnexpr);
+
+ READ_DONE();
+}
+
+static FuncExpr *
+_readFuncExpr(void)
+{
+ READ_LOCALS(FuncExpr);
+
+ READ_OID_FIELD(funcid);
+ READ_OID_FIELD(funcresulttype);
+ READ_BOOL_FIELD(funcretset);
+ READ_BOOL_FIELD(funcvariadic);
+ READ_ENUM_FIELD(funcformat, CoercionForm);
+ READ_OID_FIELD(funccollid);
+ READ_OID_FIELD(inputcollid);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static NamedArgExpr *
+_readNamedArgExpr(void)
+{
+ READ_LOCALS(NamedArgExpr);
+
+ READ_NODE_FIELD(arg);
+ READ_STRING_FIELD(name);
+ READ_INT_FIELD(argnumber);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static OpExpr *
+_readOpExpr(void)
+{
+ READ_LOCALS(OpExpr);
+
+ READ_OID_FIELD(opno);
+ READ_OID_FIELD(opfuncid);
+ READ_OID_FIELD(opresulttype);
+ READ_BOOL_FIELD(opretset);
+ READ_OID_FIELD(opcollid);
+ READ_OID_FIELD(inputcollid);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static DistinctExpr *
+_readDistinctExpr(void)
+{
+ READ_LOCALS(DistinctExpr);
+
+ READ_OID_FIELD(opno);
+ READ_OID_FIELD(opfuncid);
+ READ_OID_FIELD(opresulttype);
+ READ_BOOL_FIELD(opretset);
+ READ_OID_FIELD(opcollid);
+ READ_OID_FIELD(inputcollid);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static NullIfExpr *
+_readNullIfExpr(void)
+{
+ READ_LOCALS(NullIfExpr);
+
+ READ_OID_FIELD(opno);
+ READ_OID_FIELD(opfuncid);
+ READ_OID_FIELD(opresulttype);
+ READ_BOOL_FIELD(opretset);
+ READ_OID_FIELD(opcollid);
+ READ_OID_FIELD(inputcollid);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ScalarArrayOpExpr *
+_readScalarArrayOpExpr(void)
+{
+ READ_LOCALS(ScalarArrayOpExpr);
+
+ READ_OID_FIELD(opno);
+ READ_OID_FIELD(opfuncid);
+ READ_OID_FIELD(hashfuncid);
+ READ_OID_FIELD(negfuncid);
+ READ_BOOL_FIELD(useOr);
+ READ_OID_FIELD(inputcollid);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static SubLink *
+_readSubLink(void)
+{
+ READ_LOCALS(SubLink);
+
+ READ_ENUM_FIELD(subLinkType, SubLinkType);
+ READ_INT_FIELD(subLinkId);
+ READ_NODE_FIELD(testexpr);
+ READ_NODE_FIELD(operName);
+ READ_NODE_FIELD(subselect);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static SubPlan *
+_readSubPlan(void)
+{
+ READ_LOCALS(SubPlan);
+
+ READ_ENUM_FIELD(subLinkType, SubLinkType);
+ READ_NODE_FIELD(testexpr);
+ READ_NODE_FIELD(paramIds);
+ READ_INT_FIELD(plan_id);
+ READ_STRING_FIELD(plan_name);
+ READ_OID_FIELD(firstColType);
+ READ_INT_FIELD(firstColTypmod);
+ READ_OID_FIELD(firstColCollation);
+ READ_BOOL_FIELD(useHashTable);
+ READ_BOOL_FIELD(unknownEqFalse);
+ READ_BOOL_FIELD(parallel_safe);
+ READ_NODE_FIELD(setParam);
+ READ_NODE_FIELD(parParam);
+ READ_NODE_FIELD(args);
+ READ_FLOAT_FIELD(startup_cost);
+ READ_FLOAT_FIELD(per_call_cost);
+
+ READ_DONE();
+}
+
+static AlternativeSubPlan *
+_readAlternativeSubPlan(void)
+{
+ READ_LOCALS(AlternativeSubPlan);
+
+ READ_NODE_FIELD(subplans);
+
+ READ_DONE();
+}
+
+static FieldSelect *
+_readFieldSelect(void)
+{
+ READ_LOCALS(FieldSelect);
+
+ READ_NODE_FIELD(arg);
+ READ_INT_FIELD(fieldnum);
+ READ_OID_FIELD(resulttype);
+ READ_INT_FIELD(resulttypmod);
+ READ_OID_FIELD(resultcollid);
+
+ READ_DONE();
+}
+
+static FieldStore *
+_readFieldStore(void)
+{
+ READ_LOCALS(FieldStore);
+
+ READ_NODE_FIELD(arg);
+ READ_NODE_FIELD(newvals);
+ READ_NODE_FIELD(fieldnums);
+ READ_OID_FIELD(resulttype);
+
+ READ_DONE();
+}
+
+static RelabelType *
+_readRelabelType(void)
+{
+ READ_LOCALS(RelabelType);
+
+ READ_NODE_FIELD(arg);
+ READ_OID_FIELD(resulttype);
+ READ_INT_FIELD(resulttypmod);
+ READ_OID_FIELD(resultcollid);
+ READ_ENUM_FIELD(relabelformat, CoercionForm);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CoerceViaIO *
+_readCoerceViaIO(void)
+{
+ READ_LOCALS(CoerceViaIO);
+
+ READ_NODE_FIELD(arg);
+ READ_OID_FIELD(resulttype);
+ READ_OID_FIELD(resultcollid);
+ READ_ENUM_FIELD(coerceformat, CoercionForm);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ArrayCoerceExpr *
+_readArrayCoerceExpr(void)
+{
+ READ_LOCALS(ArrayCoerceExpr);
+
+ READ_NODE_FIELD(arg);
+ READ_NODE_FIELD(elemexpr);
+ READ_OID_FIELD(resulttype);
+ READ_INT_FIELD(resulttypmod);
+ READ_OID_FIELD(resultcollid);
+ READ_ENUM_FIELD(coerceformat, CoercionForm);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ConvertRowtypeExpr *
+_readConvertRowtypeExpr(void)
+{
+ READ_LOCALS(ConvertRowtypeExpr);
+
+ READ_NODE_FIELD(arg);
+ READ_OID_FIELD(resulttype);
+ READ_ENUM_FIELD(convertformat, CoercionForm);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CollateExpr *
+_readCollateExpr(void)
+{
+ READ_LOCALS(CollateExpr);
+
+ READ_NODE_FIELD(arg);
+ READ_OID_FIELD(collOid);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CaseExpr *
+_readCaseExpr(void)
+{
+ READ_LOCALS(CaseExpr);
+
+ READ_OID_FIELD(casetype);
+ READ_OID_FIELD(casecollid);
+ READ_NODE_FIELD(arg);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(defresult);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CaseWhen *
+_readCaseWhen(void)
+{
+ READ_LOCALS(CaseWhen);
+
+ READ_NODE_FIELD(expr);
+ READ_NODE_FIELD(result);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CaseTestExpr *
+_readCaseTestExpr(void)
+{
+ READ_LOCALS(CaseTestExpr);
+
+ READ_OID_FIELD(typeId);
+ READ_INT_FIELD(typeMod);
+ READ_OID_FIELD(collation);
+
+ READ_DONE();
+}
+
+static ArrayExpr *
+_readArrayExpr(void)
+{
+ READ_LOCALS(ArrayExpr);
+
+ READ_OID_FIELD(array_typeid);
+ READ_OID_FIELD(array_collid);
+ READ_OID_FIELD(element_typeid);
+ READ_NODE_FIELD(elements);
+ READ_BOOL_FIELD(multidims);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static RowExpr *
+_readRowExpr(void)
+{
+ READ_LOCALS(RowExpr);
+
+ READ_NODE_FIELD(args);
+ READ_OID_FIELD(row_typeid);
+ READ_ENUM_FIELD(row_format, CoercionForm);
+ READ_NODE_FIELD(colnames);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static RowCompareExpr *
+_readRowCompareExpr(void)
+{
+ READ_LOCALS(RowCompareExpr);
+
+ READ_ENUM_FIELD(rctype, RowCompareType);
+ READ_NODE_FIELD(opnos);
+ READ_NODE_FIELD(opfamilies);
+ READ_NODE_FIELD(inputcollids);
+ READ_NODE_FIELD(largs);
+ READ_NODE_FIELD(rargs);
+
+ READ_DONE();
+}
+
+static CoalesceExpr *
+_readCoalesceExpr(void)
+{
+ READ_LOCALS(CoalesceExpr);
+
+ READ_OID_FIELD(coalescetype);
+ READ_OID_FIELD(coalescecollid);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static MinMaxExpr *
+_readMinMaxExpr(void)
+{
+ READ_LOCALS(MinMaxExpr);
+
+ READ_OID_FIELD(minmaxtype);
+ READ_OID_FIELD(minmaxcollid);
+ READ_OID_FIELD(inputcollid);
+ READ_ENUM_FIELD(op, MinMaxOp);
+ READ_NODE_FIELD(args);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static SQLValueFunction *
+_readSQLValueFunction(void)
+{
+ READ_LOCALS(SQLValueFunction);
+
+ READ_ENUM_FIELD(op, SQLValueFunctionOp);
+ READ_OID_FIELD(type);
+ READ_INT_FIELD(typmod);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static XmlExpr *
+_readXmlExpr(void)
+{
+ READ_LOCALS(XmlExpr);
+
+ READ_ENUM_FIELD(op, XmlExprOp);
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(named_args);
+ READ_NODE_FIELD(arg_names);
+ READ_NODE_FIELD(args);
+ READ_ENUM_FIELD(xmloption, XmlOptionType);
+ READ_BOOL_FIELD(indent);
+ READ_OID_FIELD(type);
+ READ_INT_FIELD(typmod);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonFormat *
+_readJsonFormat(void)
+{
+ READ_LOCALS(JsonFormat);
+
+ READ_ENUM_FIELD(format_type, JsonFormatType);
+ READ_ENUM_FIELD(encoding, JsonEncoding);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonReturning *
+_readJsonReturning(void)
+{
+ READ_LOCALS(JsonReturning);
+
+ READ_NODE_FIELD(format);
+ READ_OID_FIELD(typid);
+ READ_INT_FIELD(typmod);
+
+ READ_DONE();
+}
+
+static JsonValueExpr *
+_readJsonValueExpr(void)
+{
+ READ_LOCALS(JsonValueExpr);
+
+ READ_NODE_FIELD(raw_expr);
+ READ_NODE_FIELD(formatted_expr);
+ READ_NODE_FIELD(format);
+
+ READ_DONE();
+}
+
+static JsonConstructorExpr *
+_readJsonConstructorExpr(void)
+{
+ READ_LOCALS(JsonConstructorExpr);
+
+ READ_ENUM_FIELD(type, JsonConstructorType);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(func);
+ READ_NODE_FIELD(coercion);
+ READ_NODE_FIELD(returning);
+ READ_BOOL_FIELD(absent_on_null);
+ READ_BOOL_FIELD(unique);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonIsPredicate *
+_readJsonIsPredicate(void)
+{
+ READ_LOCALS(JsonIsPredicate);
+
+ READ_NODE_FIELD(expr);
+ READ_NODE_FIELD(format);
+ READ_ENUM_FIELD(item_type, JsonValueType);
+ READ_BOOL_FIELD(unique_keys);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static NullTest *
+_readNullTest(void)
+{
+ READ_LOCALS(NullTest);
+
+ READ_NODE_FIELD(arg);
+ READ_ENUM_FIELD(nulltesttype, NullTestType);
+ READ_BOOL_FIELD(argisrow);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static BooleanTest *
+_readBooleanTest(void)
+{
+ READ_LOCALS(BooleanTest);
+
+ READ_NODE_FIELD(arg);
+ READ_ENUM_FIELD(booltesttype, BoolTestType);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CoerceToDomain *
+_readCoerceToDomain(void)
+{
+ READ_LOCALS(CoerceToDomain);
+
+ READ_NODE_FIELD(arg);
+ READ_OID_FIELD(resulttype);
+ READ_INT_FIELD(resulttypmod);
+ READ_OID_FIELD(resultcollid);
+ READ_ENUM_FIELD(coercionformat, CoercionForm);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CoerceToDomainValue *
+_readCoerceToDomainValue(void)
+{
+ READ_LOCALS(CoerceToDomainValue);
+
+ READ_OID_FIELD(typeId);
+ READ_INT_FIELD(typeMod);
+ READ_OID_FIELD(collation);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static SetToDefault *
+_readSetToDefault(void)
+{
+ READ_LOCALS(SetToDefault);
+
+ READ_OID_FIELD(typeId);
+ READ_INT_FIELD(typeMod);
+ READ_OID_FIELD(collation);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CurrentOfExpr *
+_readCurrentOfExpr(void)
+{
+ READ_LOCALS(CurrentOfExpr);
+
+ READ_UINT_FIELD(cvarno);
+ READ_STRING_FIELD(cursor_name);
+ READ_INT_FIELD(cursor_param);
+
+ READ_DONE();
+}
+
+static NextValueExpr *
+_readNextValueExpr(void)
+{
+ READ_LOCALS(NextValueExpr);
+
+ READ_OID_FIELD(seqid);
+ READ_OID_FIELD(typeId);
+
+ READ_DONE();
+}
+
+static InferenceElem *
+_readInferenceElem(void)
+{
+ READ_LOCALS(InferenceElem);
+
+ READ_NODE_FIELD(expr);
+ READ_OID_FIELD(infercollid);
+ READ_OID_FIELD(inferopclass);
+
+ READ_DONE();
+}
+
+static TargetEntry *
+_readTargetEntry(void)
+{
+ READ_LOCALS(TargetEntry);
+
+ READ_NODE_FIELD(expr);
+ READ_INT_FIELD(resno);
+ READ_STRING_FIELD(resname);
+ READ_UINT_FIELD(ressortgroupref);
+ READ_OID_FIELD(resorigtbl);
+ READ_INT_FIELD(resorigcol);
+ READ_BOOL_FIELD(resjunk);
+
+ READ_DONE();
+}
+
+static RangeTblRef *
+_readRangeTblRef(void)
+{
+ READ_LOCALS(RangeTblRef);
+
+ READ_INT_FIELD(rtindex);
+
+ READ_DONE();
+}
+
+static JoinExpr *
+_readJoinExpr(void)
+{
+ READ_LOCALS(JoinExpr);
+
+ READ_ENUM_FIELD(jointype, JoinType);
+ READ_BOOL_FIELD(isNatural);
+ READ_NODE_FIELD(larg);
+ READ_NODE_FIELD(rarg);
+ READ_NODE_FIELD(usingClause);
+ READ_NODE_FIELD(join_using_alias);
+ READ_NODE_FIELD(quals);
+ READ_NODE_FIELD(alias);
+ READ_INT_FIELD(rtindex);
+
+ READ_DONE();
+}
+
+static FromExpr *
+_readFromExpr(void)
+{
+ READ_LOCALS(FromExpr);
+
+ READ_NODE_FIELD(fromlist);
+ READ_NODE_FIELD(quals);
+
+ READ_DONE();
+}
+
+static OnConflictExpr *
+_readOnConflictExpr(void)
+{
+ READ_LOCALS(OnConflictExpr);
+
+ READ_ENUM_FIELD(action, OnConflictAction);
+ READ_NODE_FIELD(arbiterElems);
+ READ_NODE_FIELD(arbiterWhere);
+ READ_OID_FIELD(constraint);
+ READ_NODE_FIELD(onConflictSet);
+ READ_NODE_FIELD(onConflictWhere);
+ READ_INT_FIELD(exclRelIndex);
+ READ_NODE_FIELD(exclRelTlist);
+
+ READ_DONE();
+}
+
+static Query *
+_readQuery(void)
+{
+ READ_LOCALS(Query);
+
+ READ_ENUM_FIELD(commandType, CmdType);
+ READ_ENUM_FIELD(querySource, QuerySource);
+ local_node->queryId = 0;
+ READ_BOOL_FIELD(canSetTag);
+ READ_NODE_FIELD(utilityStmt);
+ READ_INT_FIELD(resultRelation);
+ READ_BOOL_FIELD(hasAggs);
+ READ_BOOL_FIELD(hasWindowFuncs);
+ READ_BOOL_FIELD(hasTargetSRFs);
+ READ_BOOL_FIELD(hasSubLinks);
+ READ_BOOL_FIELD(hasDistinctOn);
+ READ_BOOL_FIELD(hasRecursive);
+ READ_BOOL_FIELD(hasModifyingCTE);
+ READ_BOOL_FIELD(hasForUpdate);
+ READ_BOOL_FIELD(hasRowSecurity);
+ READ_BOOL_FIELD(isReturn);
+ READ_NODE_FIELD(cteList);
+ READ_NODE_FIELD(rtable);
+ READ_NODE_FIELD(rteperminfos);
+ READ_NODE_FIELD(jointree);
+ READ_NODE_FIELD(mergeActionList);
+ READ_BOOL_FIELD(mergeUseOuterJoin);
+ READ_NODE_FIELD(targetList);
+ READ_ENUM_FIELD(override, OverridingKind);
+ READ_NODE_FIELD(onConflict);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(groupClause);
+ READ_BOOL_FIELD(groupDistinct);
+ READ_NODE_FIELD(groupingSets);
+ READ_NODE_FIELD(havingQual);
+ READ_NODE_FIELD(windowClause);
+ READ_NODE_FIELD(distinctClause);
+ READ_NODE_FIELD(sortClause);
+ READ_NODE_FIELD(limitOffset);
+ READ_NODE_FIELD(limitCount);
+ READ_ENUM_FIELD(limitOption, LimitOption);
+ READ_NODE_FIELD(rowMarks);
+ READ_NODE_FIELD(setOperations);
+ READ_NODE_FIELD(constraintDeps);
+ READ_NODE_FIELD(withCheckOptions);
+ READ_LOCATION_FIELD(stmt_location);
+ READ_INT_FIELD(stmt_len);
+
+ READ_DONE();
+}
+
+static TypeName *
+_readTypeName(void)
+{
+ READ_LOCALS(TypeName);
+
+ READ_NODE_FIELD(names);
+ READ_OID_FIELD(typeOid);
+ READ_BOOL_FIELD(setof);
+ READ_BOOL_FIELD(pct_type);
+ READ_NODE_FIELD(typmods);
+ READ_INT_FIELD(typemod);
+ READ_NODE_FIELD(arrayBounds);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ColumnRef *
+_readColumnRef(void)
+{
+ READ_LOCALS(ColumnRef);
+
+ READ_NODE_FIELD(fields);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ParamRef *
+_readParamRef(void)
+{
+ READ_LOCALS(ParamRef);
+
+ READ_INT_FIELD(number);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static TypeCast *
+_readTypeCast(void)
+{
+ READ_LOCALS(TypeCast);
+
+ READ_NODE_FIELD(arg);
+ READ_NODE_FIELD(typeName);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CollateClause *
+_readCollateClause(void)
+{
+ READ_LOCALS(CollateClause);
+
+ READ_NODE_FIELD(arg);
+ READ_NODE_FIELD(collname);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static RoleSpec *
+_readRoleSpec(void)
+{
+ READ_LOCALS(RoleSpec);
+
+ READ_ENUM_FIELD(roletype, RoleSpecType);
+ READ_STRING_FIELD(rolename);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static FuncCall *
+_readFuncCall(void)
+{
+ READ_LOCALS(FuncCall);
+
+ READ_NODE_FIELD(funcname);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(agg_order);
+ READ_NODE_FIELD(agg_filter);
+ READ_NODE_FIELD(over);
+ READ_BOOL_FIELD(agg_within_group);
+ READ_BOOL_FIELD(agg_star);
+ READ_BOOL_FIELD(agg_distinct);
+ READ_BOOL_FIELD(func_variadic);
+ READ_ENUM_FIELD(funcformat, CoercionForm);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static A_Star *
+_readA_Star(void)
+{
+ READ_LOCALS_NO_FIELDS(A_Star);
+
+
+ READ_DONE();
+}
+
+static A_Indices *
+_readA_Indices(void)
+{
+ READ_LOCALS(A_Indices);
+
+ READ_BOOL_FIELD(is_slice);
+ READ_NODE_FIELD(lidx);
+ READ_NODE_FIELD(uidx);
+
+ READ_DONE();
+}
+
+static A_Indirection *
+_readA_Indirection(void)
+{
+ READ_LOCALS(A_Indirection);
+
+ READ_NODE_FIELD(arg);
+ READ_NODE_FIELD(indirection);
+
+ READ_DONE();
+}
+
+static A_ArrayExpr *
+_readA_ArrayExpr(void)
+{
+ READ_LOCALS(A_ArrayExpr);
+
+ READ_NODE_FIELD(elements);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ResTarget *
+_readResTarget(void)
+{
+ READ_LOCALS(ResTarget);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(indirection);
+ READ_NODE_FIELD(val);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static MultiAssignRef *
+_readMultiAssignRef(void)
+{
+ READ_LOCALS(MultiAssignRef);
+
+ READ_NODE_FIELD(source);
+ READ_INT_FIELD(colno);
+ READ_INT_FIELD(ncolumns);
+
+ READ_DONE();
+}
+
+static SortBy *
+_readSortBy(void)
+{
+ READ_LOCALS(SortBy);
+
+ READ_NODE_FIELD(node);
+ READ_ENUM_FIELD(sortby_dir, SortByDir);
+ READ_ENUM_FIELD(sortby_nulls, SortByNulls);
+ READ_NODE_FIELD(useOp);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static WindowDef *
+_readWindowDef(void)
+{
+ READ_LOCALS(WindowDef);
+
+ READ_STRING_FIELD(name);
+ READ_STRING_FIELD(refname);
+ READ_NODE_FIELD(partitionClause);
+ READ_NODE_FIELD(orderClause);
+ READ_INT_FIELD(frameOptions);
+ READ_NODE_FIELD(startOffset);
+ READ_NODE_FIELD(endOffset);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static RangeSubselect *
+_readRangeSubselect(void)
+{
+ READ_LOCALS(RangeSubselect);
+
+ READ_BOOL_FIELD(lateral);
+ READ_NODE_FIELD(subquery);
+ READ_NODE_FIELD(alias);
+
+ READ_DONE();
+}
+
+static RangeFunction *
+_readRangeFunction(void)
+{
+ READ_LOCALS(RangeFunction);
+
+ READ_BOOL_FIELD(lateral);
+ READ_BOOL_FIELD(ordinality);
+ READ_BOOL_FIELD(is_rowsfrom);
+ READ_NODE_FIELD(functions);
+ READ_NODE_FIELD(alias);
+ READ_NODE_FIELD(coldeflist);
+
+ READ_DONE();
+}
+
+static RangeTableFunc *
+_readRangeTableFunc(void)
+{
+ READ_LOCALS(RangeTableFunc);
+
+ READ_BOOL_FIELD(lateral);
+ READ_NODE_FIELD(docexpr);
+ READ_NODE_FIELD(rowexpr);
+ READ_NODE_FIELD(namespaces);
+ READ_NODE_FIELD(columns);
+ READ_NODE_FIELD(alias);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static RangeTableFuncCol *
+_readRangeTableFuncCol(void)
+{
+ READ_LOCALS(RangeTableFuncCol);
+
+ READ_STRING_FIELD(colname);
+ READ_NODE_FIELD(typeName);
+ READ_BOOL_FIELD(for_ordinality);
+ READ_BOOL_FIELD(is_not_null);
+ READ_NODE_FIELD(colexpr);
+ READ_NODE_FIELD(coldefexpr);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static RangeTableSample *
+_readRangeTableSample(void)
+{
+ READ_LOCALS(RangeTableSample);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(method);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(repeatable);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static ColumnDef *
+_readColumnDef(void)
+{
+ READ_LOCALS(ColumnDef);
+
+ READ_STRING_FIELD(colname);
+ READ_NODE_FIELD(typeName);
+ READ_STRING_FIELD(compression);
+ READ_INT_FIELD(inhcount);
+ READ_BOOL_FIELD(is_local);
+ READ_BOOL_FIELD(is_not_null);
+ READ_BOOL_FIELD(is_from_type);
+ READ_CHAR_FIELD(storage);
+ READ_STRING_FIELD(storage_name);
+ READ_NODE_FIELD(raw_default);
+ READ_NODE_FIELD(cooked_default);
+ READ_CHAR_FIELD(identity);
+ READ_NODE_FIELD(identitySequence);
+ READ_CHAR_FIELD(generated);
+ READ_NODE_FIELD(collClause);
+ READ_OID_FIELD(collOid);
+ READ_NODE_FIELD(constraints);
+ READ_NODE_FIELD(fdwoptions);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static TableLikeClause *
+_readTableLikeClause(void)
+{
+ READ_LOCALS(TableLikeClause);
+
+ READ_NODE_FIELD(relation);
+ READ_UINT_FIELD(options);
+ READ_OID_FIELD(relationOid);
+
+ READ_DONE();
+}
+
+static IndexElem *
+_readIndexElem(void)
+{
+ READ_LOCALS(IndexElem);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(expr);
+ READ_STRING_FIELD(indexcolname);
+ READ_NODE_FIELD(collation);
+ READ_NODE_FIELD(opclass);
+ READ_NODE_FIELD(opclassopts);
+ READ_ENUM_FIELD(ordering, SortByDir);
+ READ_ENUM_FIELD(nulls_ordering, SortByNulls);
+
+ READ_DONE();
+}
+
+static DefElem *
+_readDefElem(void)
+{
+ READ_LOCALS(DefElem);
+
+ READ_STRING_FIELD(defnamespace);
+ READ_STRING_FIELD(defname);
+ READ_NODE_FIELD(arg);
+ READ_ENUM_FIELD(defaction, DefElemAction);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static LockingClause *
+_readLockingClause(void)
+{
+ READ_LOCALS(LockingClause);
+
+ READ_NODE_FIELD(lockedRels);
+ READ_ENUM_FIELD(strength, LockClauseStrength);
+ READ_ENUM_FIELD(waitPolicy, LockWaitPolicy);
+
+ READ_DONE();
+}
+
+static XmlSerialize *
+_readXmlSerialize(void)
+{
+ READ_LOCALS(XmlSerialize);
+
+ READ_ENUM_FIELD(xmloption, XmlOptionType);
+ READ_NODE_FIELD(expr);
+ READ_NODE_FIELD(typeName);
+ READ_BOOL_FIELD(indent);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static PartitionElem *
+_readPartitionElem(void)
+{
+ READ_LOCALS(PartitionElem);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(expr);
+ READ_NODE_FIELD(collation);
+ READ_NODE_FIELD(opclass);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static PartitionSpec *
+_readPartitionSpec(void)
+{
+ READ_LOCALS(PartitionSpec);
+
+ READ_ENUM_FIELD(strategy, PartitionStrategy);
+ READ_NODE_FIELD(partParams);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static PartitionBoundSpec *
+_readPartitionBoundSpec(void)
+{
+ READ_LOCALS(PartitionBoundSpec);
+
+ READ_CHAR_FIELD(strategy);
+ READ_BOOL_FIELD(is_default);
+ READ_INT_FIELD(modulus);
+ READ_INT_FIELD(remainder);
+ READ_NODE_FIELD(listdatums);
+ READ_NODE_FIELD(lowerdatums);
+ READ_NODE_FIELD(upperdatums);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static PartitionRangeDatum *
+_readPartitionRangeDatum(void)
+{
+ READ_LOCALS(PartitionRangeDatum);
+
+ READ_ENUM_FIELD(kind, PartitionRangeDatumKind);
+ READ_NODE_FIELD(value);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static PartitionCmd *
+_readPartitionCmd(void)
+{
+ READ_LOCALS(PartitionCmd);
+
+ READ_NODE_FIELD(name);
+ READ_NODE_FIELD(bound);
+ READ_BOOL_FIELD(concurrent);
+
+ READ_DONE();
+}
+
+static RTEPermissionInfo *
+_readRTEPermissionInfo(void)
+{
+ READ_LOCALS(RTEPermissionInfo);
+
+ READ_OID_FIELD(relid);
+ READ_BOOL_FIELD(inh);
+ READ_UINT64_FIELD(requiredPerms);
+ READ_OID_FIELD(checkAsUser);
+ READ_BITMAPSET_FIELD(selectedCols);
+ READ_BITMAPSET_FIELD(insertedCols);
+ READ_BITMAPSET_FIELD(updatedCols);
+
+ READ_DONE();
+}
+
+static RangeTblFunction *
+_readRangeTblFunction(void)
+{
+ READ_LOCALS(RangeTblFunction);
+
+ READ_NODE_FIELD(funcexpr);
+ READ_INT_FIELD(funccolcount);
+ READ_NODE_FIELD(funccolnames);
+ READ_NODE_FIELD(funccoltypes);
+ READ_NODE_FIELD(funccoltypmods);
+ READ_NODE_FIELD(funccolcollations);
+ READ_BITMAPSET_FIELD(funcparams);
+
+ READ_DONE();
+}
+
+static TableSampleClause *
+_readTableSampleClause(void)
+{
+ READ_LOCALS(TableSampleClause);
+
+ READ_OID_FIELD(tsmhandler);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(repeatable);
+
+ READ_DONE();
+}
+
+static WithCheckOption *
+_readWithCheckOption(void)
+{
+ READ_LOCALS(WithCheckOption);
+
+ READ_ENUM_FIELD(kind, WCOKind);
+ READ_STRING_FIELD(relname);
+ READ_STRING_FIELD(polname);
+ READ_NODE_FIELD(qual);
+ READ_BOOL_FIELD(cascaded);
+
+ READ_DONE();
+}
+
+static SortGroupClause *
+_readSortGroupClause(void)
+{
+ READ_LOCALS(SortGroupClause);
+
+ READ_UINT_FIELD(tleSortGroupRef);
+ READ_OID_FIELD(eqop);
+ READ_OID_FIELD(sortop);
+ READ_BOOL_FIELD(nulls_first);
+ READ_BOOL_FIELD(hashable);
+
+ READ_DONE();
+}
+
+static GroupingSet *
+_readGroupingSet(void)
+{
+ READ_LOCALS(GroupingSet);
+
+ READ_ENUM_FIELD(kind, GroupingSetKind);
+ READ_NODE_FIELD(content);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static WindowClause *
+_readWindowClause(void)
+{
+ READ_LOCALS(WindowClause);
+
+ READ_STRING_FIELD(name);
+ READ_STRING_FIELD(refname);
+ READ_NODE_FIELD(partitionClause);
+ READ_NODE_FIELD(orderClause);
+ READ_INT_FIELD(frameOptions);
+ READ_NODE_FIELD(startOffset);
+ READ_NODE_FIELD(endOffset);
+ READ_NODE_FIELD(runCondition);
+ READ_OID_FIELD(startInRangeFunc);
+ READ_OID_FIELD(endInRangeFunc);
+ READ_OID_FIELD(inRangeColl);
+ READ_BOOL_FIELD(inRangeAsc);
+ READ_BOOL_FIELD(inRangeNullsFirst);
+ READ_UINT_FIELD(winref);
+ READ_BOOL_FIELD(copiedOrder);
+
+ READ_DONE();
+}
+
+static RowMarkClause *
+_readRowMarkClause(void)
+{
+ READ_LOCALS(RowMarkClause);
+
+ READ_UINT_FIELD(rti);
+ READ_ENUM_FIELD(strength, LockClauseStrength);
+ READ_ENUM_FIELD(waitPolicy, LockWaitPolicy);
+ READ_BOOL_FIELD(pushedDown);
+
+ READ_DONE();
+}
+
+static WithClause *
+_readWithClause(void)
+{
+ READ_LOCALS(WithClause);
+
+ READ_NODE_FIELD(ctes);
+ READ_BOOL_FIELD(recursive);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static InferClause *
+_readInferClause(void)
+{
+ READ_LOCALS(InferClause);
+
+ READ_NODE_FIELD(indexElems);
+ READ_NODE_FIELD(whereClause);
+ READ_STRING_FIELD(conname);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static OnConflictClause *
+_readOnConflictClause(void)
+{
+ READ_LOCALS(OnConflictClause);
+
+ READ_ENUM_FIELD(action, OnConflictAction);
+ READ_NODE_FIELD(infer);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(whereClause);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CTESearchClause *
+_readCTESearchClause(void)
+{
+ READ_LOCALS(CTESearchClause);
+
+ READ_NODE_FIELD(search_col_list);
+ READ_BOOL_FIELD(search_breadth_first);
+ READ_STRING_FIELD(search_seq_column);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CTECycleClause *
+_readCTECycleClause(void)
+{
+ READ_LOCALS(CTECycleClause);
+
+ READ_NODE_FIELD(cycle_col_list);
+ READ_STRING_FIELD(cycle_mark_column);
+ READ_NODE_FIELD(cycle_mark_value);
+ READ_NODE_FIELD(cycle_mark_default);
+ READ_STRING_FIELD(cycle_path_column);
+ READ_LOCATION_FIELD(location);
+ READ_OID_FIELD(cycle_mark_type);
+ READ_INT_FIELD(cycle_mark_typmod);
+ READ_OID_FIELD(cycle_mark_collation);
+ READ_OID_FIELD(cycle_mark_neop);
+
+ READ_DONE();
+}
+
+static CommonTableExpr *
+_readCommonTableExpr(void)
+{
+ READ_LOCALS(CommonTableExpr);
+
+ READ_STRING_FIELD(ctename);
+ READ_NODE_FIELD(aliascolnames);
+ READ_ENUM_FIELD(ctematerialized, CTEMaterialize);
+ READ_NODE_FIELD(ctequery);
+ READ_NODE_FIELD(search_clause);
+ READ_NODE_FIELD(cycle_clause);
+ READ_LOCATION_FIELD(location);
+ READ_BOOL_FIELD(cterecursive);
+ READ_INT_FIELD(cterefcount);
+ READ_NODE_FIELD(ctecolnames);
+ READ_NODE_FIELD(ctecoltypes);
+ READ_NODE_FIELD(ctecoltypmods);
+ READ_NODE_FIELD(ctecolcollations);
+
+ READ_DONE();
+}
+
+static MergeWhenClause *
+_readMergeWhenClause(void)
+{
+ READ_LOCALS(MergeWhenClause);
+
+ READ_BOOL_FIELD(matched);
+ READ_ENUM_FIELD(commandType, CmdType);
+ READ_ENUM_FIELD(override, OverridingKind);
+ READ_NODE_FIELD(condition);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(values);
+
+ READ_DONE();
+}
+
+static MergeAction *
+_readMergeAction(void)
+{
+ READ_LOCALS(MergeAction);
+
+ READ_BOOL_FIELD(matched);
+ READ_ENUM_FIELD(commandType, CmdType);
+ READ_ENUM_FIELD(override, OverridingKind);
+ READ_NODE_FIELD(qual);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(updateColnos);
+
+ READ_DONE();
+}
+
+static TriggerTransition *
+_readTriggerTransition(void)
+{
+ READ_LOCALS(TriggerTransition);
+
+ READ_STRING_FIELD(name);
+ READ_BOOL_FIELD(isNew);
+ READ_BOOL_FIELD(isTable);
+
+ READ_DONE();
+}
+
+static JsonOutput *
+_readJsonOutput(void)
+{
+ READ_LOCALS(JsonOutput);
+
+ READ_NODE_FIELD(typeName);
+ READ_NODE_FIELD(returning);
+
+ READ_DONE();
+}
+
+static JsonKeyValue *
+_readJsonKeyValue(void)
+{
+ READ_LOCALS(JsonKeyValue);
+
+ READ_NODE_FIELD(key);
+ READ_NODE_FIELD(value);
+
+ READ_DONE();
+}
+
+static JsonObjectConstructor *
+_readJsonObjectConstructor(void)
+{
+ READ_LOCALS(JsonObjectConstructor);
+
+ READ_NODE_FIELD(exprs);
+ READ_NODE_FIELD(output);
+ READ_BOOL_FIELD(absent_on_null);
+ READ_BOOL_FIELD(unique);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonArrayConstructor *
+_readJsonArrayConstructor(void)
+{
+ READ_LOCALS(JsonArrayConstructor);
+
+ READ_NODE_FIELD(exprs);
+ READ_NODE_FIELD(output);
+ READ_BOOL_FIELD(absent_on_null);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonArrayQueryConstructor *
+_readJsonArrayQueryConstructor(void)
+{
+ READ_LOCALS(JsonArrayQueryConstructor);
+
+ READ_NODE_FIELD(query);
+ READ_NODE_FIELD(output);
+ READ_NODE_FIELD(format);
+ READ_BOOL_FIELD(absent_on_null);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonAggConstructor *
+_readJsonAggConstructor(void)
+{
+ READ_LOCALS(JsonAggConstructor);
+
+ READ_NODE_FIELD(output);
+ READ_NODE_FIELD(agg_filter);
+ READ_NODE_FIELD(agg_order);
+ READ_NODE_FIELD(over);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static JsonObjectAgg *
+_readJsonObjectAgg(void)
+{
+ READ_LOCALS(JsonObjectAgg);
+
+ READ_NODE_FIELD(constructor);
+ READ_NODE_FIELD(arg);
+ READ_BOOL_FIELD(absent_on_null);
+ READ_BOOL_FIELD(unique);
+
+ READ_DONE();
+}
+
+static JsonArrayAgg *
+_readJsonArrayAgg(void)
+{
+ READ_LOCALS(JsonArrayAgg);
+
+ READ_NODE_FIELD(constructor);
+ READ_NODE_FIELD(arg);
+ READ_BOOL_FIELD(absent_on_null);
+
+ READ_DONE();
+}
+
+static RawStmt *
+_readRawStmt(void)
+{
+ READ_LOCALS(RawStmt);
+
+ READ_NODE_FIELD(stmt);
+ READ_LOCATION_FIELD(stmt_location);
+ READ_INT_FIELD(stmt_len);
+
+ READ_DONE();
+}
+
+static InsertStmt *
+_readInsertStmt(void)
+{
+ READ_LOCALS(InsertStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(cols);
+ READ_NODE_FIELD(selectStmt);
+ READ_NODE_FIELD(onConflictClause);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(withClause);
+ READ_ENUM_FIELD(override, OverridingKind);
+
+ READ_DONE();
+}
+
+static DeleteStmt *
+_readDeleteStmt(void)
+{
+ READ_LOCALS(DeleteStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(usingClause);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(withClause);
+
+ READ_DONE();
+}
+
+static UpdateStmt *
+_readUpdateStmt(void)
+{
+ READ_LOCALS(UpdateStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(fromClause);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(withClause);
+
+ READ_DONE();
+}
+
+static MergeStmt *
+_readMergeStmt(void)
+{
+ READ_LOCALS(MergeStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(sourceRelation);
+ READ_NODE_FIELD(joinCondition);
+ READ_NODE_FIELD(mergeWhenClauses);
+ READ_NODE_FIELD(withClause);
+
+ READ_DONE();
+}
+
+static SelectStmt *
+_readSelectStmt(void)
+{
+ READ_LOCALS(SelectStmt);
+
+ READ_NODE_FIELD(distinctClause);
+ READ_NODE_FIELD(intoClause);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(fromClause);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(groupClause);
+ READ_BOOL_FIELD(groupDistinct);
+ READ_NODE_FIELD(havingClause);
+ READ_NODE_FIELD(windowClause);
+ READ_NODE_FIELD(valuesLists);
+ READ_NODE_FIELD(sortClause);
+ READ_NODE_FIELD(limitOffset);
+ READ_NODE_FIELD(limitCount);
+ READ_ENUM_FIELD(limitOption, LimitOption);
+ READ_NODE_FIELD(lockingClause);
+ READ_NODE_FIELD(withClause);
+ READ_ENUM_FIELD(op, SetOperation);
+ READ_BOOL_FIELD(all);
+ READ_NODE_FIELD(larg);
+ READ_NODE_FIELD(rarg);
+
+ READ_DONE();
+}
+
+static SetOperationStmt *
+_readSetOperationStmt(void)
+{
+ READ_LOCALS(SetOperationStmt);
+
+ READ_ENUM_FIELD(op, SetOperation);
+ READ_BOOL_FIELD(all);
+ READ_NODE_FIELD(larg);
+ READ_NODE_FIELD(rarg);
+ READ_NODE_FIELD(colTypes);
+ READ_NODE_FIELD(colTypmods);
+ READ_NODE_FIELD(colCollations);
+ READ_NODE_FIELD(groupClauses);
+
+ READ_DONE();
+}
+
+static ReturnStmt *
+_readReturnStmt(void)
+{
+ READ_LOCALS(ReturnStmt);
+
+ READ_NODE_FIELD(returnval);
+
+ READ_DONE();
+}
+
+static PLAssignStmt *
+_readPLAssignStmt(void)
+{
+ READ_LOCALS(PLAssignStmt);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(indirection);
+ READ_INT_FIELD(nnames);
+ READ_NODE_FIELD(val);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CreateSchemaStmt *
+_readCreateSchemaStmt(void)
+{
+ READ_LOCALS(CreateSchemaStmt);
+
+ READ_STRING_FIELD(schemaname);
+ READ_NODE_FIELD(authrole);
+ READ_NODE_FIELD(schemaElts);
+ READ_BOOL_FIELD(if_not_exists);
+
+ READ_DONE();
+}
+
+static AlterTableStmt *
+_readAlterTableStmt(void)
+{
+ READ_LOCALS(AlterTableStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(cmds);
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static ReplicaIdentityStmt *
+_readReplicaIdentityStmt(void)
+{
+ READ_LOCALS(ReplicaIdentityStmt);
+
+ READ_CHAR_FIELD(identity_type);
+ READ_STRING_FIELD(name);
+
+ READ_DONE();
+}
+
+static AlterTableCmd *
+_readAlterTableCmd(void)
+{
+ READ_LOCALS(AlterTableCmd);
+
+ READ_ENUM_FIELD(subtype, AlterTableType);
+ READ_STRING_FIELD(name);
+ READ_INT_FIELD(num);
+ READ_NODE_FIELD(newowner);
+ READ_NODE_FIELD(def);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+ READ_BOOL_FIELD(missing_ok);
+ READ_BOOL_FIELD(recurse);
+
+ READ_DONE();
+}
+
+static AlterCollationStmt *
+_readAlterCollationStmt(void)
+{
+ READ_LOCALS(AlterCollationStmt);
+
+ READ_NODE_FIELD(collname);
+
+ READ_DONE();
+}
+
+static AlterDomainStmt *
+_readAlterDomainStmt(void)
+{
+ READ_LOCALS(AlterDomainStmt);
+
+ READ_CHAR_FIELD(subtype);
+ READ_NODE_FIELD(typeName);
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(def);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static GrantStmt *
+_readGrantStmt(void)
+{
+ READ_LOCALS(GrantStmt);
+
+ READ_BOOL_FIELD(is_grant);
+ READ_ENUM_FIELD(targtype, GrantTargetType);
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_NODE_FIELD(objects);
+ READ_NODE_FIELD(privileges);
+ READ_NODE_FIELD(grantees);
+ READ_BOOL_FIELD(grant_option);
+ READ_NODE_FIELD(grantor);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+
+ READ_DONE();
+}
+
+static ObjectWithArgs *
+_readObjectWithArgs(void)
+{
+ READ_LOCALS(ObjectWithArgs);
+
+ READ_NODE_FIELD(objname);
+ READ_NODE_FIELD(objargs);
+ READ_NODE_FIELD(objfuncargs);
+ READ_BOOL_FIELD(args_unspecified);
+
+ READ_DONE();
+}
+
+static AccessPriv *
+_readAccessPriv(void)
+{
+ READ_LOCALS(AccessPriv);
+
+ READ_STRING_FIELD(priv_name);
+ READ_NODE_FIELD(cols);
+
+ READ_DONE();
+}
+
+static GrantRoleStmt *
+_readGrantRoleStmt(void)
+{
+ READ_LOCALS(GrantRoleStmt);
+
+ READ_NODE_FIELD(granted_roles);
+ READ_NODE_FIELD(grantee_roles);
+ READ_BOOL_FIELD(is_grant);
+ READ_NODE_FIELD(opt);
+ READ_NODE_FIELD(grantor);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+
+ READ_DONE();
+}
+
+static AlterDefaultPrivilegesStmt *
+_readAlterDefaultPrivilegesStmt(void)
+{
+ READ_LOCALS(AlterDefaultPrivilegesStmt);
+
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(action);
+
+ READ_DONE();
+}
+
+static CopyStmt *
+_readCopyStmt(void)
+{
+ READ_LOCALS(CopyStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(query);
+ READ_NODE_FIELD(attlist);
+ READ_BOOL_FIELD(is_from);
+ READ_BOOL_FIELD(is_program);
+ READ_STRING_FIELD(filename);
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(whereClause);
+
+ READ_DONE();
+}
+
+static VariableSetStmt *
+_readVariableSetStmt(void)
+{
+ READ_LOCALS(VariableSetStmt);
+
+ READ_ENUM_FIELD(kind, VariableSetKind);
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(args);
+ READ_BOOL_FIELD(is_local);
+
+ READ_DONE();
+}
+
+static VariableShowStmt *
+_readVariableShowStmt(void)
+{
+ READ_LOCALS(VariableShowStmt);
+
+ READ_STRING_FIELD(name);
+
+ READ_DONE();
+}
+
+static CreateStmt *
+_readCreateStmt(void)
+{
+ READ_LOCALS(CreateStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(tableElts);
+ READ_NODE_FIELD(inhRelations);
+ READ_NODE_FIELD(partbound);
+ READ_NODE_FIELD(partspec);
+ READ_NODE_FIELD(ofTypename);
+ READ_NODE_FIELD(constraints);
+ READ_NODE_FIELD(options);
+ READ_ENUM_FIELD(oncommit, OnCommitAction);
+ READ_STRING_FIELD(tablespacename);
+ READ_STRING_FIELD(accessMethod);
+ READ_BOOL_FIELD(if_not_exists);
+
+ READ_DONE();
+}
+
+static CreateTableSpaceStmt *
+_readCreateTableSpaceStmt(void)
+{
+ READ_LOCALS(CreateTableSpaceStmt);
+
+ READ_STRING_FIELD(tablespacename);
+ READ_NODE_FIELD(owner);
+ READ_STRING_FIELD(location);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static DropTableSpaceStmt *
+_readDropTableSpaceStmt(void)
+{
+ READ_LOCALS(DropTableSpaceStmt);
+
+ READ_STRING_FIELD(tablespacename);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static AlterTableSpaceOptionsStmt *
+_readAlterTableSpaceOptionsStmt(void)
+{
+ READ_LOCALS(AlterTableSpaceOptionsStmt);
+
+ READ_STRING_FIELD(tablespacename);
+ READ_NODE_FIELD(options);
+ READ_BOOL_FIELD(isReset);
+
+ READ_DONE();
+}
+
+static AlterTableMoveAllStmt *
+_readAlterTableMoveAllStmt(void)
+{
+ READ_LOCALS(AlterTableMoveAllStmt);
+
+ READ_STRING_FIELD(orig_tablespacename);
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_NODE_FIELD(roles);
+ READ_STRING_FIELD(new_tablespacename);
+ READ_BOOL_FIELD(nowait);
+
+ READ_DONE();
+}
+
+static CreateExtensionStmt *
+_readCreateExtensionStmt(void)
+{
+ READ_LOCALS(CreateExtensionStmt);
+
+ READ_STRING_FIELD(extname);
+ READ_BOOL_FIELD(if_not_exists);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterExtensionStmt *
+_readAlterExtensionStmt(void)
+{
+ READ_LOCALS(AlterExtensionStmt);
+
+ READ_STRING_FIELD(extname);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterExtensionContentsStmt *
+_readAlterExtensionContentsStmt(void)
+{
+ READ_LOCALS(AlterExtensionContentsStmt);
+
+ READ_STRING_FIELD(extname);
+ READ_INT_FIELD(action);
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_NODE_FIELD(object);
+
+ READ_DONE();
+}
+
+static CreateFdwStmt *
+_readCreateFdwStmt(void)
+{
+ READ_LOCALS(CreateFdwStmt);
+
+ READ_STRING_FIELD(fdwname);
+ READ_NODE_FIELD(func_options);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterFdwStmt *
+_readAlterFdwStmt(void)
+{
+ READ_LOCALS(AlterFdwStmt);
+
+ READ_STRING_FIELD(fdwname);
+ READ_NODE_FIELD(func_options);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static CreateForeignServerStmt *
+_readCreateForeignServerStmt(void)
+{
+ READ_LOCALS(CreateForeignServerStmt);
+
+ READ_STRING_FIELD(servername);
+ READ_STRING_FIELD(servertype);
+ READ_STRING_FIELD(version);
+ READ_STRING_FIELD(fdwname);
+ READ_BOOL_FIELD(if_not_exists);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterForeignServerStmt *
+_readAlterForeignServerStmt(void)
+{
+ READ_LOCALS(AlterForeignServerStmt);
+
+ READ_STRING_FIELD(servername);
+ READ_STRING_FIELD(version);
+ READ_NODE_FIELD(options);
+ READ_BOOL_FIELD(has_version);
+
+ READ_DONE();
+}
+
+static CreateForeignTableStmt *
+_readCreateForeignTableStmt(void)
+{
+ READ_LOCALS(CreateForeignTableStmt);
+
+ READ_NODE_FIELD(base.relation);
+ READ_NODE_FIELD(base.tableElts);
+ READ_NODE_FIELD(base.inhRelations);
+ READ_NODE_FIELD(base.partbound);
+ READ_NODE_FIELD(base.partspec);
+ READ_NODE_FIELD(base.ofTypename);
+ READ_NODE_FIELD(base.constraints);
+ READ_NODE_FIELD(base.options);
+ READ_ENUM_FIELD(base.oncommit, OnCommitAction);
+ READ_STRING_FIELD(base.tablespacename);
+ READ_STRING_FIELD(base.accessMethod);
+ READ_BOOL_FIELD(base.if_not_exists);
+ READ_STRING_FIELD(servername);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static CreateUserMappingStmt *
+_readCreateUserMappingStmt(void)
+{
+ READ_LOCALS(CreateUserMappingStmt);
+
+ READ_NODE_FIELD(user);
+ READ_STRING_FIELD(servername);
+ READ_BOOL_FIELD(if_not_exists);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterUserMappingStmt *
+_readAlterUserMappingStmt(void)
+{
+ READ_LOCALS(AlterUserMappingStmt);
+
+ READ_NODE_FIELD(user);
+ READ_STRING_FIELD(servername);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static DropUserMappingStmt *
+_readDropUserMappingStmt(void)
+{
+ READ_LOCALS(DropUserMappingStmt);
+
+ READ_NODE_FIELD(user);
+ READ_STRING_FIELD(servername);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static ImportForeignSchemaStmt *
+_readImportForeignSchemaStmt(void)
+{
+ READ_LOCALS(ImportForeignSchemaStmt);
+
+ READ_STRING_FIELD(server_name);
+ READ_STRING_FIELD(remote_schema);
+ READ_STRING_FIELD(local_schema);
+ READ_ENUM_FIELD(list_type, ImportForeignSchemaType);
+ READ_NODE_FIELD(table_list);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static CreatePolicyStmt *
+_readCreatePolicyStmt(void)
+{
+ READ_LOCALS(CreatePolicyStmt);
+
+ READ_STRING_FIELD(policy_name);
+ READ_NODE_FIELD(table);
+ READ_STRING_FIELD(cmd_name);
+ READ_BOOL_FIELD(permissive);
+ READ_NODE_FIELD(roles);
+ READ_NODE_FIELD(qual);
+ READ_NODE_FIELD(with_check);
+
+ READ_DONE();
+}
+
+static AlterPolicyStmt *
+_readAlterPolicyStmt(void)
+{
+ READ_LOCALS(AlterPolicyStmt);
+
+ READ_STRING_FIELD(policy_name);
+ READ_NODE_FIELD(table);
+ READ_NODE_FIELD(roles);
+ READ_NODE_FIELD(qual);
+ READ_NODE_FIELD(with_check);
+
+ READ_DONE();
+}
+
+static CreateAmStmt *
+_readCreateAmStmt(void)
+{
+ READ_LOCALS(CreateAmStmt);
+
+ READ_STRING_FIELD(amname);
+ READ_NODE_FIELD(handler_name);
+ READ_CHAR_FIELD(amtype);
+
+ READ_DONE();
+}
+
+static CreateTrigStmt *
+_readCreateTrigStmt(void)
+{
+ READ_LOCALS(CreateTrigStmt);
+
+ READ_BOOL_FIELD(replace);
+ READ_BOOL_FIELD(isconstraint);
+ READ_STRING_FIELD(trigname);
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(funcname);
+ READ_NODE_FIELD(args);
+ READ_BOOL_FIELD(row);
+ READ_INT_FIELD(timing);
+ READ_INT_FIELD(events);
+ READ_NODE_FIELD(columns);
+ READ_NODE_FIELD(whenClause);
+ READ_NODE_FIELD(transitionRels);
+ READ_BOOL_FIELD(deferrable);
+ READ_BOOL_FIELD(initdeferred);
+ READ_NODE_FIELD(constrrel);
+
+ READ_DONE();
+}
+
+static CreateEventTrigStmt *
+_readCreateEventTrigStmt(void)
+{
+ READ_LOCALS(CreateEventTrigStmt);
+
+ READ_STRING_FIELD(trigname);
+ READ_STRING_FIELD(eventname);
+ READ_NODE_FIELD(whenclause);
+ READ_NODE_FIELD(funcname);
+
+ READ_DONE();
+}
+
+static AlterEventTrigStmt *
+_readAlterEventTrigStmt(void)
+{
+ READ_LOCALS(AlterEventTrigStmt);
+
+ READ_STRING_FIELD(trigname);
+ READ_CHAR_FIELD(tgenabled);
+
+ READ_DONE();
+}
+
+static CreatePLangStmt *
+_readCreatePLangStmt(void)
+{
+ READ_LOCALS(CreatePLangStmt);
+
+ READ_BOOL_FIELD(replace);
+ READ_STRING_FIELD(plname);
+ READ_NODE_FIELD(plhandler);
+ READ_NODE_FIELD(plinline);
+ READ_NODE_FIELD(plvalidator);
+ READ_BOOL_FIELD(pltrusted);
+
+ READ_DONE();
+}
+
+static CreateRoleStmt *
+_readCreateRoleStmt(void)
+{
+ READ_LOCALS(CreateRoleStmt);
+
+ READ_ENUM_FIELD(stmt_type, RoleStmtType);
+ READ_STRING_FIELD(role);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterRoleStmt *
+_readAlterRoleStmt(void)
+{
+ READ_LOCALS(AlterRoleStmt);
+
+ READ_NODE_FIELD(role);
+ READ_NODE_FIELD(options);
+ READ_INT_FIELD(action);
+
+ READ_DONE();
+}
+
+static AlterRoleSetStmt *
+_readAlterRoleSetStmt(void)
+{
+ READ_LOCALS(AlterRoleSetStmt);
+
+ READ_NODE_FIELD(role);
+ READ_STRING_FIELD(database);
+ READ_NODE_FIELD(setstmt);
+
+ READ_DONE();
+}
+
+static DropRoleStmt *
+_readDropRoleStmt(void)
+{
+ READ_LOCALS(DropRoleStmt);
+
+ READ_NODE_FIELD(roles);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static CreateSeqStmt *
+_readCreateSeqStmt(void)
+{
+ READ_LOCALS(CreateSeqStmt);
+
+ READ_NODE_FIELD(sequence);
+ READ_NODE_FIELD(options);
+ READ_OID_FIELD(ownerId);
+ READ_BOOL_FIELD(for_identity);
+ READ_BOOL_FIELD(if_not_exists);
+
+ READ_DONE();
+}
+
+static AlterSeqStmt *
+_readAlterSeqStmt(void)
+{
+ READ_LOCALS(AlterSeqStmt);
+
+ READ_NODE_FIELD(sequence);
+ READ_NODE_FIELD(options);
+ READ_BOOL_FIELD(for_identity);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static DefineStmt *
+_readDefineStmt(void)
+{
+ READ_LOCALS(DefineStmt);
+
+ READ_ENUM_FIELD(kind, ObjectType);
+ READ_BOOL_FIELD(oldstyle);
+ READ_NODE_FIELD(defnames);
+ READ_NODE_FIELD(args);
+ READ_NODE_FIELD(definition);
+ READ_BOOL_FIELD(if_not_exists);
+ READ_BOOL_FIELD(replace);
+
+ READ_DONE();
+}
+
+static CreateDomainStmt *
+_readCreateDomainStmt(void)
+{
+ READ_LOCALS(CreateDomainStmt);
+
+ READ_NODE_FIELD(domainname);
+ READ_NODE_FIELD(typeName);
+ READ_NODE_FIELD(collClause);
+ READ_NODE_FIELD(constraints);
+
+ READ_DONE();
+}
+
+static CreateOpClassStmt *
+_readCreateOpClassStmt(void)
+{
+ READ_LOCALS(CreateOpClassStmt);
+
+ READ_NODE_FIELD(opclassname);
+ READ_NODE_FIELD(opfamilyname);
+ READ_STRING_FIELD(amname);
+ READ_NODE_FIELD(datatype);
+ READ_NODE_FIELD(items);
+ READ_BOOL_FIELD(isDefault);
+
+ READ_DONE();
+}
+
+static CreateOpClassItem *
+_readCreateOpClassItem(void)
+{
+ READ_LOCALS(CreateOpClassItem);
+
+ READ_INT_FIELD(itemtype);
+ READ_NODE_FIELD(name);
+ READ_INT_FIELD(number);
+ READ_NODE_FIELD(order_family);
+ READ_NODE_FIELD(class_args);
+ READ_NODE_FIELD(storedtype);
+
+ READ_DONE();
+}
+
+static CreateOpFamilyStmt *
+_readCreateOpFamilyStmt(void)
+{
+ READ_LOCALS(CreateOpFamilyStmt);
+
+ READ_NODE_FIELD(opfamilyname);
+ READ_STRING_FIELD(amname);
+
+ READ_DONE();
+}
+
+static AlterOpFamilyStmt *
+_readAlterOpFamilyStmt(void)
+{
+ READ_LOCALS(AlterOpFamilyStmt);
+
+ READ_NODE_FIELD(opfamilyname);
+ READ_STRING_FIELD(amname);
+ READ_BOOL_FIELD(isDrop);
+ READ_NODE_FIELD(items);
+
+ READ_DONE();
+}
+
+static DropStmt *
+_readDropStmt(void)
+{
+ READ_LOCALS(DropStmt);
+
+ READ_NODE_FIELD(objects);
+ READ_ENUM_FIELD(removeType, ObjectType);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+ READ_BOOL_FIELD(missing_ok);
+ READ_BOOL_FIELD(concurrent);
+
+ READ_DONE();
+}
+
+static TruncateStmt *
+_readTruncateStmt(void)
+{
+ READ_LOCALS(TruncateStmt);
+
+ READ_NODE_FIELD(relations);
+ READ_BOOL_FIELD(restart_seqs);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+
+ READ_DONE();
+}
+
+static CommentStmt *
+_readCommentStmt(void)
+{
+ READ_LOCALS(CommentStmt);
+
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_NODE_FIELD(object);
+ READ_STRING_FIELD(comment);
+
+ READ_DONE();
+}
+
+static SecLabelStmt *
+_readSecLabelStmt(void)
+{
+ READ_LOCALS(SecLabelStmt);
+
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_NODE_FIELD(object);
+ READ_STRING_FIELD(provider);
+ READ_STRING_FIELD(label);
+
+ READ_DONE();
+}
+
+static DeclareCursorStmt *
+_readDeclareCursorStmt(void)
+{
+ READ_LOCALS(DeclareCursorStmt);
+
+ READ_STRING_FIELD(portalname);
+ READ_INT_FIELD(options);
+ READ_NODE_FIELD(query);
+
+ READ_DONE();
+}
+
+static ClosePortalStmt *
+_readClosePortalStmt(void)
+{
+ READ_LOCALS(ClosePortalStmt);
+
+ READ_STRING_FIELD(portalname);
+
+ READ_DONE();
+}
+
+static FetchStmt *
+_readFetchStmt(void)
+{
+ READ_LOCALS(FetchStmt);
+
+ READ_ENUM_FIELD(direction, FetchDirection);
+ READ_LONG_FIELD(howMany);
+ READ_STRING_FIELD(portalname);
+ READ_BOOL_FIELD(ismove);
+
+ READ_DONE();
+}
+
+static IndexStmt *
+_readIndexStmt(void)
+{
+ READ_LOCALS(IndexStmt);
+
+ READ_STRING_FIELD(idxname);
+ READ_NODE_FIELD(relation);
+ READ_STRING_FIELD(accessMethod);
+ READ_STRING_FIELD(tableSpace);
+ READ_NODE_FIELD(indexParams);
+ READ_NODE_FIELD(indexIncludingParams);
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(excludeOpNames);
+ READ_STRING_FIELD(idxcomment);
+ READ_OID_FIELD(indexOid);
+ READ_OID_FIELD(oldNumber);
+ READ_UINT_FIELD(oldCreateSubid);
+ READ_UINT_FIELD(oldFirstRelfilelocatorSubid);
+ READ_BOOL_FIELD(unique);
+ READ_BOOL_FIELD(nulls_not_distinct);
+ READ_BOOL_FIELD(primary);
+ READ_BOOL_FIELD(isconstraint);
+ READ_BOOL_FIELD(deferrable);
+ READ_BOOL_FIELD(initdeferred);
+ READ_BOOL_FIELD(transformed);
+ READ_BOOL_FIELD(concurrent);
+ READ_BOOL_FIELD(if_not_exists);
+ READ_BOOL_FIELD(reset_default_tblspc);
+
+ READ_DONE();
+}
+
+static CreateStatsStmt *
+_readCreateStatsStmt(void)
+{
+ READ_LOCALS(CreateStatsStmt);
+
+ READ_NODE_FIELD(defnames);
+ READ_NODE_FIELD(stat_types);
+ READ_NODE_FIELD(exprs);
+ READ_NODE_FIELD(relations);
+ READ_STRING_FIELD(stxcomment);
+ READ_BOOL_FIELD(transformed);
+ READ_BOOL_FIELD(if_not_exists);
+
+ READ_DONE();
+}
+
+static StatsElem *
+_readStatsElem(void)
+{
+ READ_LOCALS(StatsElem);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(expr);
+
+ READ_DONE();
+}
+
+static AlterStatsStmt *
+_readAlterStatsStmt(void)
+{
+ READ_LOCALS(AlterStatsStmt);
+
+ READ_NODE_FIELD(defnames);
+ READ_INT_FIELD(stxstattarget);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static CreateFunctionStmt *
+_readCreateFunctionStmt(void)
+{
+ READ_LOCALS(CreateFunctionStmt);
+
+ READ_BOOL_FIELD(is_procedure);
+ READ_BOOL_FIELD(replace);
+ READ_NODE_FIELD(funcname);
+ READ_NODE_FIELD(parameters);
+ READ_NODE_FIELD(returnType);
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(sql_body);
+
+ READ_DONE();
+}
+
+static FunctionParameter *
+_readFunctionParameter(void)
+{
+ READ_LOCALS(FunctionParameter);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(argType);
+ READ_ENUM_FIELD(mode, FunctionParameterMode);
+ READ_NODE_FIELD(defexpr);
+
+ READ_DONE();
+}
+
+static AlterFunctionStmt *
+_readAlterFunctionStmt(void)
+{
+ READ_LOCALS(AlterFunctionStmt);
+
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_NODE_FIELD(func);
+ READ_NODE_FIELD(actions);
+
+ READ_DONE();
+}
+
+static DoStmt *
+_readDoStmt(void)
+{
+ READ_LOCALS(DoStmt);
+
+ READ_NODE_FIELD(args);
+
+ READ_DONE();
+}
+
+static CallStmt *
+_readCallStmt(void)
+{
+ READ_LOCALS(CallStmt);
+
+ READ_NODE_FIELD(funccall);
+ READ_NODE_FIELD(funcexpr);
+ READ_NODE_FIELD(outargs);
+
+ READ_DONE();
+}
+
+static RenameStmt *
+_readRenameStmt(void)
+{
+ READ_LOCALS(RenameStmt);
+
+ READ_ENUM_FIELD(renameType, ObjectType);
+ READ_ENUM_FIELD(relationType, ObjectType);
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(object);
+ READ_STRING_FIELD(subname);
+ READ_STRING_FIELD(newname);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static AlterObjectDependsStmt *
+_readAlterObjectDependsStmt(void)
+{
+ READ_LOCALS(AlterObjectDependsStmt);
+
+ READ_ENUM_FIELD(objectType, ObjectType);
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(object);
+ READ_NODE_FIELD(extname);
+ READ_BOOL_FIELD(remove);
+
+ READ_DONE();
+}
+
+static AlterObjectSchemaStmt *
+_readAlterObjectSchemaStmt(void)
+{
+ READ_LOCALS(AlterObjectSchemaStmt);
+
+ READ_ENUM_FIELD(objectType, ObjectType);
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(object);
+ READ_STRING_FIELD(newschema);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static AlterOwnerStmt *
+_readAlterOwnerStmt(void)
+{
+ READ_LOCALS(AlterOwnerStmt);
+
+ READ_ENUM_FIELD(objectType, ObjectType);
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(object);
+ READ_NODE_FIELD(newowner);
+
+ READ_DONE();
+}
+
+static AlterOperatorStmt *
+_readAlterOperatorStmt(void)
+{
+ READ_LOCALS(AlterOperatorStmt);
+
+ READ_NODE_FIELD(opername);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterTypeStmt *
+_readAlterTypeStmt(void)
+{
+ READ_LOCALS(AlterTypeStmt);
+
+ READ_NODE_FIELD(typeName);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static RuleStmt *
+_readRuleStmt(void)
+{
+ READ_LOCALS(RuleStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_STRING_FIELD(rulename);
+ READ_NODE_FIELD(whereClause);
+ READ_ENUM_FIELD(event, CmdType);
+ READ_BOOL_FIELD(instead);
+ READ_NODE_FIELD(actions);
+ READ_BOOL_FIELD(replace);
+
+ READ_DONE();
+}
+
+static NotifyStmt *
+_readNotifyStmt(void)
+{
+ READ_LOCALS(NotifyStmt);
+
+ READ_STRING_FIELD(conditionname);
+ READ_STRING_FIELD(payload);
+
+ READ_DONE();
+}
+
+static ListenStmt *
+_readListenStmt(void)
+{
+ READ_LOCALS(ListenStmt);
+
+ READ_STRING_FIELD(conditionname);
+
+ READ_DONE();
+}
+
+static UnlistenStmt *
+_readUnlistenStmt(void)
+{
+ READ_LOCALS(UnlistenStmt);
+
+ READ_STRING_FIELD(conditionname);
+
+ READ_DONE();
+}
+
+static TransactionStmt *
+_readTransactionStmt(void)
+{
+ READ_LOCALS(TransactionStmt);
+
+ READ_ENUM_FIELD(kind, TransactionStmtKind);
+ READ_NODE_FIELD(options);
+ READ_STRING_FIELD(savepoint_name);
+ READ_STRING_FIELD(gid);
+ READ_BOOL_FIELD(chain);
+
+ READ_DONE();
+}
+
+static CompositeTypeStmt *
+_readCompositeTypeStmt(void)
+{
+ READ_LOCALS(CompositeTypeStmt);
+
+ READ_NODE_FIELD(typevar);
+ READ_NODE_FIELD(coldeflist);
+
+ READ_DONE();
+}
+
+static CreateEnumStmt *
+_readCreateEnumStmt(void)
+{
+ READ_LOCALS(CreateEnumStmt);
+
+ READ_NODE_FIELD(typeName);
+ READ_NODE_FIELD(vals);
+
+ READ_DONE();
+}
+
+static CreateRangeStmt *
+_readCreateRangeStmt(void)
+{
+ READ_LOCALS(CreateRangeStmt);
+
+ READ_NODE_FIELD(typeName);
+ READ_NODE_FIELD(params);
+
+ READ_DONE();
+}
+
+static AlterEnumStmt *
+_readAlterEnumStmt(void)
+{
+ READ_LOCALS(AlterEnumStmt);
+
+ READ_NODE_FIELD(typeName);
+ READ_STRING_FIELD(oldVal);
+ READ_STRING_FIELD(newVal);
+ READ_STRING_FIELD(newValNeighbor);
+ READ_BOOL_FIELD(newValIsAfter);
+ READ_BOOL_FIELD(skipIfNewValExists);
+
+ READ_DONE();
+}
+
+static ViewStmt *
+_readViewStmt(void)
+{
+ READ_LOCALS(ViewStmt);
+
+ READ_NODE_FIELD(view);
+ READ_NODE_FIELD(aliases);
+ READ_NODE_FIELD(query);
+ READ_BOOL_FIELD(replace);
+ READ_NODE_FIELD(options);
+ READ_ENUM_FIELD(withCheckOption, ViewCheckOption);
+
+ READ_DONE();
+}
+
+static LoadStmt *
+_readLoadStmt(void)
+{
+ READ_LOCALS(LoadStmt);
+
+ READ_STRING_FIELD(filename);
+
+ READ_DONE();
+}
+
+static CreatedbStmt *
+_readCreatedbStmt(void)
+{
+ READ_LOCALS(CreatedbStmt);
+
+ READ_STRING_FIELD(dbname);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterDatabaseStmt *
+_readAlterDatabaseStmt(void)
+{
+ READ_LOCALS(AlterDatabaseStmt);
+
+ READ_STRING_FIELD(dbname);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterDatabaseRefreshCollStmt *
+_readAlterDatabaseRefreshCollStmt(void)
+{
+ READ_LOCALS(AlterDatabaseRefreshCollStmt);
+
+ READ_STRING_FIELD(dbname);
+
+ READ_DONE();
+}
+
+static AlterDatabaseSetStmt *
+_readAlterDatabaseSetStmt(void)
+{
+ READ_LOCALS(AlterDatabaseSetStmt);
+
+ READ_STRING_FIELD(dbname);
+ READ_NODE_FIELD(setstmt);
+
+ READ_DONE();
+}
+
+static DropdbStmt *
+_readDropdbStmt(void)
+{
+ READ_LOCALS(DropdbStmt);
+
+ READ_STRING_FIELD(dbname);
+ READ_BOOL_FIELD(missing_ok);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterSystemStmt *
+_readAlterSystemStmt(void)
+{
+ READ_LOCALS(AlterSystemStmt);
+
+ READ_NODE_FIELD(setstmt);
+
+ READ_DONE();
+}
+
+static ClusterStmt *
+_readClusterStmt(void)
+{
+ READ_LOCALS(ClusterStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_STRING_FIELD(indexname);
+ READ_NODE_FIELD(params);
+
+ READ_DONE();
+}
+
+static VacuumStmt *
+_readVacuumStmt(void)
+{
+ READ_LOCALS(VacuumStmt);
+
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(rels);
+ READ_BOOL_FIELD(is_vacuumcmd);
+
+ READ_DONE();
+}
+
+static VacuumRelation *
+_readVacuumRelation(void)
+{
+ READ_LOCALS(VacuumRelation);
+
+ READ_NODE_FIELD(relation);
+ READ_OID_FIELD(oid);
+ READ_NODE_FIELD(va_cols);
+
+ READ_DONE();
+}
+
+static ExplainStmt *
+_readExplainStmt(void)
+{
+ READ_LOCALS(ExplainStmt);
+
+ READ_NODE_FIELD(query);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static CreateTableAsStmt *
+_readCreateTableAsStmt(void)
+{
+ READ_LOCALS(CreateTableAsStmt);
+
+ READ_NODE_FIELD(query);
+ READ_NODE_FIELD(into);
+ READ_ENUM_FIELD(objtype, ObjectType);
+ READ_BOOL_FIELD(is_select_into);
+ READ_BOOL_FIELD(if_not_exists);
+
+ READ_DONE();
+}
+
+static RefreshMatViewStmt *
+_readRefreshMatViewStmt(void)
+{
+ READ_LOCALS(RefreshMatViewStmt);
+
+ READ_BOOL_FIELD(concurrent);
+ READ_BOOL_FIELD(skipData);
+ READ_NODE_FIELD(relation);
+
+ READ_DONE();
+}
+
+static CheckPointStmt *
+_readCheckPointStmt(void)
+{
+ READ_LOCALS_NO_FIELDS(CheckPointStmt);
+
+
+ READ_DONE();
+}
+
+static DiscardStmt *
+_readDiscardStmt(void)
+{
+ READ_LOCALS(DiscardStmt);
+
+ READ_ENUM_FIELD(target, DiscardMode);
+
+ READ_DONE();
+}
+
+static LockStmt *
+_readLockStmt(void)
+{
+ READ_LOCALS(LockStmt);
+
+ READ_NODE_FIELD(relations);
+ READ_INT_FIELD(mode);
+ READ_BOOL_FIELD(nowait);
+
+ READ_DONE();
+}
+
+static ConstraintsSetStmt *
+_readConstraintsSetStmt(void)
+{
+ READ_LOCALS(ConstraintsSetStmt);
+
+ READ_NODE_FIELD(constraints);
+ READ_BOOL_FIELD(deferred);
+
+ READ_DONE();
+}
+
+static ReindexStmt *
+_readReindexStmt(void)
+{
+ READ_LOCALS(ReindexStmt);
+
+ READ_ENUM_FIELD(kind, ReindexObjectType);
+ READ_NODE_FIELD(relation);
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(params);
+
+ READ_DONE();
+}
+
+static CreateConversionStmt *
+_readCreateConversionStmt(void)
+{
+ READ_LOCALS(CreateConversionStmt);
+
+ READ_NODE_FIELD(conversion_name);
+ READ_STRING_FIELD(for_encoding_name);
+ READ_STRING_FIELD(to_encoding_name);
+ READ_NODE_FIELD(func_name);
+ READ_BOOL_FIELD(def);
+
+ READ_DONE();
+}
+
+static CreateCastStmt *
+_readCreateCastStmt(void)
+{
+ READ_LOCALS(CreateCastStmt);
+
+ READ_NODE_FIELD(sourcetype);
+ READ_NODE_FIELD(targettype);
+ READ_NODE_FIELD(func);
+ READ_ENUM_FIELD(context, CoercionContext);
+ READ_BOOL_FIELD(inout);
+
+ READ_DONE();
+}
+
+static CreateTransformStmt *
+_readCreateTransformStmt(void)
+{
+ READ_LOCALS(CreateTransformStmt);
+
+ READ_BOOL_FIELD(replace);
+ READ_NODE_FIELD(type_name);
+ READ_STRING_FIELD(lang);
+ READ_NODE_FIELD(fromsql);
+ READ_NODE_FIELD(tosql);
+
+ READ_DONE();
+}
+
+static PrepareStmt *
+_readPrepareStmt(void)
+{
+ READ_LOCALS(PrepareStmt);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(argtypes);
+ READ_NODE_FIELD(query);
+
+ READ_DONE();
+}
+
+static ExecuteStmt *
+_readExecuteStmt(void)
+{
+ READ_LOCALS(ExecuteStmt);
+
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(params);
+
+ READ_DONE();
+}
+
+static DeallocateStmt *
+_readDeallocateStmt(void)
+{
+ READ_LOCALS(DeallocateStmt);
+
+ READ_STRING_FIELD(name);
+
+ READ_DONE();
+}
+
+static DropOwnedStmt *
+_readDropOwnedStmt(void)
+{
+ READ_LOCALS(DropOwnedStmt);
+
+ READ_NODE_FIELD(roles);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+
+ READ_DONE();
+}
+
+static ReassignOwnedStmt *
+_readReassignOwnedStmt(void)
+{
+ READ_LOCALS(ReassignOwnedStmt);
+
+ READ_NODE_FIELD(roles);
+ READ_NODE_FIELD(newrole);
+
+ READ_DONE();
+}
+
+static AlterTSDictionaryStmt *
+_readAlterTSDictionaryStmt(void)
+{
+ READ_LOCALS(AlterTSDictionaryStmt);
+
+ READ_NODE_FIELD(dictname);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterTSConfigurationStmt *
+_readAlterTSConfigurationStmt(void)
+{
+ READ_LOCALS(AlterTSConfigurationStmt);
+
+ READ_ENUM_FIELD(kind, AlterTSConfigType);
+ READ_NODE_FIELD(cfgname);
+ READ_NODE_FIELD(tokentype);
+ READ_NODE_FIELD(dicts);
+ READ_BOOL_FIELD(override);
+ READ_BOOL_FIELD(replace);
+ READ_BOOL_FIELD(missing_ok);
+
+ READ_DONE();
+}
+
+static PublicationTable *
+_readPublicationTable(void)
+{
+ READ_LOCALS(PublicationTable);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(columns);
+
+ READ_DONE();
+}
+
+static PublicationObjSpec *
+_readPublicationObjSpec(void)
+{
+ READ_LOCALS(PublicationObjSpec);
+
+ READ_ENUM_FIELD(pubobjtype, PublicationObjSpecType);
+ READ_STRING_FIELD(name);
+ READ_NODE_FIELD(pubtable);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+static CreatePublicationStmt *
+_readCreatePublicationStmt(void)
+{
+ READ_LOCALS(CreatePublicationStmt);
+
+ READ_STRING_FIELD(pubname);
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(pubobjects);
+ READ_BOOL_FIELD(for_all_tables);
+
+ READ_DONE();
+}
+
+static AlterPublicationStmt *
+_readAlterPublicationStmt(void)
+{
+ READ_LOCALS(AlterPublicationStmt);
+
+ READ_STRING_FIELD(pubname);
+ READ_NODE_FIELD(options);
+ READ_NODE_FIELD(pubobjects);
+ READ_BOOL_FIELD(for_all_tables);
+ READ_ENUM_FIELD(action, AlterPublicationAction);
+
+ READ_DONE();
+}
+
+static CreateSubscriptionStmt *
+_readCreateSubscriptionStmt(void)
+{
+ READ_LOCALS(CreateSubscriptionStmt);
+
+ READ_STRING_FIELD(subname);
+ READ_STRING_FIELD(conninfo);
+ READ_NODE_FIELD(publication);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static AlterSubscriptionStmt *
+_readAlterSubscriptionStmt(void)
+{
+ READ_LOCALS(AlterSubscriptionStmt);
+
+ READ_ENUM_FIELD(kind, AlterSubscriptionType);
+ READ_STRING_FIELD(subname);
+ READ_STRING_FIELD(conninfo);
+ READ_NODE_FIELD(publication);
+ READ_NODE_FIELD(options);
+
+ READ_DONE();
+}
+
+static DropSubscriptionStmt *
+_readDropSubscriptionStmt(void)
+{
+ READ_LOCALS(DropSubscriptionStmt);
+
+ READ_STRING_FIELD(subname);
+ READ_BOOL_FIELD(missing_ok);
+ READ_ENUM_FIELD(behavior, DropBehavior);
+
+ READ_DONE();
+}
+
+static PlaceHolderVar *
+_readPlaceHolderVar(void)
+{
+ READ_LOCALS(PlaceHolderVar);
+
+ READ_NODE_FIELD(phexpr);
+ READ_BITMAPSET_FIELD(phrels);
+ READ_BITMAPSET_FIELD(phnullingrels);
+ READ_UINT_FIELD(phid);
+ READ_UINT_FIELD(phlevelsup);
+
+ READ_DONE();
+}
+
+static AppendRelInfo *
+_readAppendRelInfo(void)
+{
+ READ_LOCALS(AppendRelInfo);
+
+ READ_UINT_FIELD(parent_relid);
+ READ_UINT_FIELD(child_relid);
+ READ_OID_FIELD(parent_reltype);
+ READ_OID_FIELD(child_reltype);
+ READ_NODE_FIELD(translated_vars);
+ READ_INT_FIELD(num_child_cols);
+ READ_ATTRNUMBER_ARRAY(parent_colnos, local_node->num_child_cols);
+ READ_OID_FIELD(parent_reloid);
+
+ READ_DONE();
+}
+
+static PlannedStmt *
+_readPlannedStmt(void)
+{
+ READ_LOCALS(PlannedStmt);
+
+ READ_ENUM_FIELD(commandType, CmdType);
+ READ_UINT64_FIELD(queryId);
+ READ_BOOL_FIELD(hasReturning);
+ READ_BOOL_FIELD(hasModifyingCTE);
+ READ_BOOL_FIELD(canSetTag);
+ READ_BOOL_FIELD(transientPlan);
+ READ_BOOL_FIELD(dependsOnRole);
+ READ_BOOL_FIELD(parallelModeNeeded);
+ READ_INT_FIELD(jitFlags);
+ READ_NODE_FIELD(planTree);
+ READ_NODE_FIELD(rtable);
+ READ_NODE_FIELD(permInfos);
+ READ_NODE_FIELD(resultRelations);
+ READ_NODE_FIELD(appendRelations);
+ READ_NODE_FIELD(subplans);
+ READ_BITMAPSET_FIELD(rewindPlanIDs);
+ READ_NODE_FIELD(rowMarks);
+ READ_NODE_FIELD(relationOids);
+ READ_NODE_FIELD(invalItems);
+ READ_NODE_FIELD(paramExecTypes);
+ READ_NODE_FIELD(utilityStmt);
+ READ_LOCATION_FIELD(stmt_location);
+ READ_INT_FIELD(stmt_len);
+
+ READ_DONE();
+}
+
+static Result *
+_readResult(void)
+{
+ READ_LOCALS(Result);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_NODE_FIELD(resconstantqual);
+
+ READ_DONE();
+}
+
+static ProjectSet *
+_readProjectSet(void)
+{
+ READ_LOCALS(ProjectSet);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+
+ READ_DONE();
+}
+
+static ModifyTable *
+_readModifyTable(void)
+{
+ READ_LOCALS(ModifyTable);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_ENUM_FIELD(operation, CmdType);
+ READ_BOOL_FIELD(canSetTag);
+ READ_UINT_FIELD(nominalRelation);
+ READ_UINT_FIELD(rootRelation);
+ READ_BOOL_FIELD(partColsUpdated);
+ READ_NODE_FIELD(resultRelations);
+ READ_NODE_FIELD(updateColnosLists);
+ READ_NODE_FIELD(withCheckOptionLists);
+ READ_NODE_FIELD(returningLists);
+ READ_NODE_FIELD(fdwPrivLists);
+ READ_BITMAPSET_FIELD(fdwDirectModifyPlans);
+ READ_NODE_FIELD(rowMarks);
+ READ_INT_FIELD(epqParam);
+ READ_ENUM_FIELD(onConflictAction, OnConflictAction);
+ READ_NODE_FIELD(arbiterIndexes);
+ READ_NODE_FIELD(onConflictSet);
+ READ_NODE_FIELD(onConflictCols);
+ READ_NODE_FIELD(onConflictWhere);
+ READ_UINT_FIELD(exclRelRTI);
+ READ_NODE_FIELD(exclRelTlist);
+ READ_NODE_FIELD(mergeActionLists);
+
+ READ_DONE();
+}
+
+static Append *
+_readAppend(void)
+{
+ READ_LOCALS(Append);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_BITMAPSET_FIELD(apprelids);
+ READ_NODE_FIELD(appendplans);
+ READ_INT_FIELD(nasyncplans);
+ READ_INT_FIELD(first_partial_plan);
+ READ_NODE_FIELD(part_prune_info);
+
+ READ_DONE();
+}
+
+static MergeAppend *
+_readMergeAppend(void)
+{
+ READ_LOCALS(MergeAppend);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_BITMAPSET_FIELD(apprelids);
+ READ_NODE_FIELD(mergeplans);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(sortColIdx, local_node->numCols);
+ READ_OID_ARRAY(sortOperators, local_node->numCols);
+ READ_OID_ARRAY(collations, local_node->numCols);
+ READ_BOOL_ARRAY(nullsFirst, local_node->numCols);
+ READ_NODE_FIELD(part_prune_info);
+
+ READ_DONE();
+}
+
+static RecursiveUnion *
+_readRecursiveUnion(void)
+{
+ READ_LOCALS(RecursiveUnion);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(wtParam);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(dupColIdx, local_node->numCols);
+ READ_OID_ARRAY(dupOperators, local_node->numCols);
+ READ_OID_ARRAY(dupCollations, local_node->numCols);
+ READ_LONG_FIELD(numGroups);
+
+ READ_DONE();
+}
+
+static BitmapAnd *
+_readBitmapAnd(void)
+{
+ READ_LOCALS(BitmapAnd);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_NODE_FIELD(bitmapplans);
+
+ READ_DONE();
+}
+
+static BitmapOr *
+_readBitmapOr(void)
+{
+ READ_LOCALS(BitmapOr);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_BOOL_FIELD(isshared);
+ READ_NODE_FIELD(bitmapplans);
+
+ READ_DONE();
+}
+
+static SeqScan *
+_readSeqScan(void)
+{
+ READ_LOCALS(SeqScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+
+ READ_DONE();
+}
+
+static SampleScan *
+_readSampleScan(void)
+{
+ READ_LOCALS(SampleScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(tablesample);
+
+ READ_DONE();
+}
+
+static IndexScan *
+_readIndexScan(void)
+{
+ READ_LOCALS(IndexScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_OID_FIELD(indexid);
+ READ_NODE_FIELD(indexqual);
+ READ_NODE_FIELD(indexqualorig);
+ READ_NODE_FIELD(indexorderby);
+ READ_NODE_FIELD(indexorderbyorig);
+ READ_NODE_FIELD(indexorderbyops);
+ READ_ENUM_FIELD(indexorderdir, ScanDirection);
+
+ READ_DONE();
+}
+
+static IndexOnlyScan *
+_readIndexOnlyScan(void)
+{
+ READ_LOCALS(IndexOnlyScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_OID_FIELD(indexid);
+ READ_NODE_FIELD(indexqual);
+ READ_NODE_FIELD(recheckqual);
+ READ_NODE_FIELD(indexorderby);
+ READ_NODE_FIELD(indextlist);
+ READ_ENUM_FIELD(indexorderdir, ScanDirection);
+
+ READ_DONE();
+}
+
+static BitmapIndexScan *
+_readBitmapIndexScan(void)
+{
+ READ_LOCALS(BitmapIndexScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_OID_FIELD(indexid);
+ READ_BOOL_FIELD(isshared);
+ READ_NODE_FIELD(indexqual);
+ READ_NODE_FIELD(indexqualorig);
+
+ READ_DONE();
+}
+
+static BitmapHeapScan *
+_readBitmapHeapScan(void)
+{
+ READ_LOCALS(BitmapHeapScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(bitmapqualorig);
+
+ READ_DONE();
+}
+
+static TidScan *
+_readTidScan(void)
+{
+ READ_LOCALS(TidScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(tidquals);
+
+ READ_DONE();
+}
+
+static TidRangeScan *
+_readTidRangeScan(void)
+{
+ READ_LOCALS(TidRangeScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(tidrangequals);
+
+ READ_DONE();
+}
+
+static SubqueryScan *
+_readSubqueryScan(void)
+{
+ READ_LOCALS(SubqueryScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(subplan);
+ READ_ENUM_FIELD(scanstatus, SubqueryScanStatus);
+
+ READ_DONE();
+}
+
+static FunctionScan *
+_readFunctionScan(void)
+{
+ READ_LOCALS(FunctionScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(functions);
+ READ_BOOL_FIELD(funcordinality);
+
+ READ_DONE();
+}
+
+static ValuesScan *
+_readValuesScan(void)
+{
+ READ_LOCALS(ValuesScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(values_lists);
+
+ READ_DONE();
+}
+
+static TableFuncScan *
+_readTableFuncScan(void)
+{
+ READ_LOCALS(TableFuncScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_NODE_FIELD(tablefunc);
+
+ READ_DONE();
+}
+
+static CteScan *
+_readCteScan(void)
+{
+ READ_LOCALS(CteScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_INT_FIELD(ctePlanId);
+ READ_INT_FIELD(cteParam);
+
+ READ_DONE();
+}
+
+static NamedTuplestoreScan *
+_readNamedTuplestoreScan(void)
+{
+ READ_LOCALS(NamedTuplestoreScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_STRING_FIELD(enrname);
+
+ READ_DONE();
+}
+
+static WorkTableScan *
+_readWorkTableScan(void)
+{
+ READ_LOCALS(WorkTableScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_INT_FIELD(wtParam);
+
+ READ_DONE();
+}
+
+static ForeignScan *
+_readForeignScan(void)
+{
+ READ_LOCALS(ForeignScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_ENUM_FIELD(operation, CmdType);
+ READ_UINT_FIELD(resultRelation);
+ READ_OID_FIELD(checkAsUser);
+ READ_OID_FIELD(fs_server);
+ READ_NODE_FIELD(fdw_exprs);
+ READ_NODE_FIELD(fdw_private);
+ READ_NODE_FIELD(fdw_scan_tlist);
+ READ_NODE_FIELD(fdw_recheck_quals);
+ READ_BITMAPSET_FIELD(fs_relids);
+ READ_BITMAPSET_FIELD(fs_base_relids);
+ READ_BOOL_FIELD(fsSystemCol);
+
+ READ_DONE();
+}
+
+static CustomScan *
+_readCustomScan(void)
+{
+ READ_LOCALS(CustomScan);
+
+ READ_FLOAT_FIELD(scan.plan.startup_cost);
+ READ_FLOAT_FIELD(scan.plan.total_cost);
+ READ_FLOAT_FIELD(scan.plan.plan_rows);
+ READ_INT_FIELD(scan.plan.plan_width);
+ READ_BOOL_FIELD(scan.plan.parallel_aware);
+ READ_BOOL_FIELD(scan.plan.parallel_safe);
+ READ_BOOL_FIELD(scan.plan.async_capable);
+ READ_INT_FIELD(scan.plan.plan_node_id);
+ READ_NODE_FIELD(scan.plan.targetlist);
+ READ_NODE_FIELD(scan.plan.qual);
+ READ_NODE_FIELD(scan.plan.lefttree);
+ READ_NODE_FIELD(scan.plan.righttree);
+ READ_NODE_FIELD(scan.plan.initPlan);
+ READ_BITMAPSET_FIELD(scan.plan.extParam);
+ READ_BITMAPSET_FIELD(scan.plan.allParam);
+ READ_UINT_FIELD(scan.scanrelid);
+ READ_UINT_FIELD(flags);
+ READ_NODE_FIELD(custom_plans);
+ READ_NODE_FIELD(custom_exprs);
+ READ_NODE_FIELD(custom_private);
+ READ_NODE_FIELD(custom_scan_tlist);
+ READ_BITMAPSET_FIELD(custom_relids);
+
+ {
+ /* Lookup CustomScanMethods by CustomName */
+ char *custom_name;
+ const CustomScanMethods *methods;
+ token = pg_strtok(&length); /* skip methods: */
+ token = pg_strtok(&length); /* CustomName */
+ custom_name = nullable_string(token, length);
+ methods = GetCustomScanMethods(custom_name, false);
+ local_node->methods = methods;
+ }
+
+ READ_DONE();
+}
+
+static NestLoop *
+_readNestLoop(void)
+{
+ READ_LOCALS(NestLoop);
+
+ READ_FLOAT_FIELD(join.plan.startup_cost);
+ READ_FLOAT_FIELD(join.plan.total_cost);
+ READ_FLOAT_FIELD(join.plan.plan_rows);
+ READ_INT_FIELD(join.plan.plan_width);
+ READ_BOOL_FIELD(join.plan.parallel_aware);
+ READ_BOOL_FIELD(join.plan.parallel_safe);
+ READ_BOOL_FIELD(join.plan.async_capable);
+ READ_INT_FIELD(join.plan.plan_node_id);
+ READ_NODE_FIELD(join.plan.targetlist);
+ READ_NODE_FIELD(join.plan.qual);
+ READ_NODE_FIELD(join.plan.lefttree);
+ READ_NODE_FIELD(join.plan.righttree);
+ READ_NODE_FIELD(join.plan.initPlan);
+ READ_BITMAPSET_FIELD(join.plan.extParam);
+ READ_BITMAPSET_FIELD(join.plan.allParam);
+ READ_ENUM_FIELD(join.jointype, JoinType);
+ READ_BOOL_FIELD(join.inner_unique);
+ READ_NODE_FIELD(join.joinqual);
+ READ_NODE_FIELD(nestParams);
+
+ READ_DONE();
+}
+
+static NestLoopParam *
+_readNestLoopParam(void)
+{
+ READ_LOCALS(NestLoopParam);
+
+ READ_INT_FIELD(paramno);
+ READ_NODE_FIELD(paramval);
+
+ READ_DONE();
+}
+
+static MergeJoin *
+_readMergeJoin(void)
+{
+ READ_LOCALS(MergeJoin);
+
+ READ_FLOAT_FIELD(join.plan.startup_cost);
+ READ_FLOAT_FIELD(join.plan.total_cost);
+ READ_FLOAT_FIELD(join.plan.plan_rows);
+ READ_INT_FIELD(join.plan.plan_width);
+ READ_BOOL_FIELD(join.plan.parallel_aware);
+ READ_BOOL_FIELD(join.plan.parallel_safe);
+ READ_BOOL_FIELD(join.plan.async_capable);
+ READ_INT_FIELD(join.plan.plan_node_id);
+ READ_NODE_FIELD(join.plan.targetlist);
+ READ_NODE_FIELD(join.plan.qual);
+ READ_NODE_FIELD(join.plan.lefttree);
+ READ_NODE_FIELD(join.plan.righttree);
+ READ_NODE_FIELD(join.plan.initPlan);
+ READ_BITMAPSET_FIELD(join.plan.extParam);
+ READ_BITMAPSET_FIELD(join.plan.allParam);
+ READ_ENUM_FIELD(join.jointype, JoinType);
+ READ_BOOL_FIELD(join.inner_unique);
+ READ_NODE_FIELD(join.joinqual);
+ READ_BOOL_FIELD(skip_mark_restore);
+ READ_NODE_FIELD(mergeclauses);
+ READ_OID_ARRAY(mergeFamilies, list_length(local_node->mergeclauses));
+ READ_OID_ARRAY(mergeCollations, list_length(local_node->mergeclauses));
+ READ_INT_ARRAY(mergeStrategies, list_length(local_node->mergeclauses));
+ READ_BOOL_ARRAY(mergeNullsFirst, list_length(local_node->mergeclauses));
+
+ READ_DONE();
+}
+
+static HashJoin *
+_readHashJoin(void)
+{
+ READ_LOCALS(HashJoin);
+
+ READ_FLOAT_FIELD(join.plan.startup_cost);
+ READ_FLOAT_FIELD(join.plan.total_cost);
+ READ_FLOAT_FIELD(join.plan.plan_rows);
+ READ_INT_FIELD(join.plan.plan_width);
+ READ_BOOL_FIELD(join.plan.parallel_aware);
+ READ_BOOL_FIELD(join.plan.parallel_safe);
+ READ_BOOL_FIELD(join.plan.async_capable);
+ READ_INT_FIELD(join.plan.plan_node_id);
+ READ_NODE_FIELD(join.plan.targetlist);
+ READ_NODE_FIELD(join.plan.qual);
+ READ_NODE_FIELD(join.plan.lefttree);
+ READ_NODE_FIELD(join.plan.righttree);
+ READ_NODE_FIELD(join.plan.initPlan);
+ READ_BITMAPSET_FIELD(join.plan.extParam);
+ READ_BITMAPSET_FIELD(join.plan.allParam);
+ READ_ENUM_FIELD(join.jointype, JoinType);
+ READ_BOOL_FIELD(join.inner_unique);
+ READ_NODE_FIELD(join.joinqual);
+ READ_NODE_FIELD(hashclauses);
+ READ_NODE_FIELD(hashoperators);
+ READ_NODE_FIELD(hashcollations);
+ READ_NODE_FIELD(hashkeys);
+
+ READ_DONE();
+}
+
+static Material *
+_readMaterial(void)
+{
+ READ_LOCALS(Material);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+
+ READ_DONE();
+}
+
+static Memoize *
+_readMemoize(void)
+{
+ READ_LOCALS(Memoize);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(numKeys);
+ READ_OID_ARRAY(hashOperators, local_node->numKeys);
+ READ_OID_ARRAY(collations, local_node->numKeys);
+ READ_NODE_FIELD(param_exprs);
+ READ_BOOL_FIELD(singlerow);
+ READ_BOOL_FIELD(binary_mode);
+ READ_UINT_FIELD(est_entries);
+ READ_BITMAPSET_FIELD(keyparamids);
+
+ READ_DONE();
+}
+
+static Sort *
+_readSort(void)
+{
+ READ_LOCALS(Sort);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(sortColIdx, local_node->numCols);
+ READ_OID_ARRAY(sortOperators, local_node->numCols);
+ READ_OID_ARRAY(collations, local_node->numCols);
+ READ_BOOL_ARRAY(nullsFirst, local_node->numCols);
+
+ READ_DONE();
+}
+
+static IncrementalSort *
+_readIncrementalSort(void)
+{
+ READ_LOCALS(IncrementalSort);
+
+ READ_FLOAT_FIELD(sort.plan.startup_cost);
+ READ_FLOAT_FIELD(sort.plan.total_cost);
+ READ_FLOAT_FIELD(sort.plan.plan_rows);
+ READ_INT_FIELD(sort.plan.plan_width);
+ READ_BOOL_FIELD(sort.plan.parallel_aware);
+ READ_BOOL_FIELD(sort.plan.parallel_safe);
+ READ_BOOL_FIELD(sort.plan.async_capable);
+ READ_INT_FIELD(sort.plan.plan_node_id);
+ READ_NODE_FIELD(sort.plan.targetlist);
+ READ_NODE_FIELD(sort.plan.qual);
+ READ_NODE_FIELD(sort.plan.lefttree);
+ READ_NODE_FIELD(sort.plan.righttree);
+ READ_NODE_FIELD(sort.plan.initPlan);
+ READ_BITMAPSET_FIELD(sort.plan.extParam);
+ READ_BITMAPSET_FIELD(sort.plan.allParam);
+ READ_INT_FIELD(sort.numCols);
+ READ_ATTRNUMBER_ARRAY(sort.sortColIdx, local_node->sort.numCols);
+ READ_OID_ARRAY(sort.sortOperators, local_node->sort.numCols);
+ READ_OID_ARRAY(sort.collations, local_node->sort.numCols);
+ READ_BOOL_ARRAY(sort.nullsFirst, local_node->sort.numCols);
+ READ_INT_FIELD(nPresortedCols);
+
+ READ_DONE();
+}
+
+static Group *
+_readGroup(void)
+{
+ READ_LOCALS(Group);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(grpColIdx, local_node->numCols);
+ READ_OID_ARRAY(grpOperators, local_node->numCols);
+ READ_OID_ARRAY(grpCollations, local_node->numCols);
+
+ READ_DONE();
+}
+
+static Agg *
+_readAgg(void)
+{
+ READ_LOCALS(Agg);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_ENUM_FIELD(aggstrategy, AggStrategy);
+ READ_ENUM_FIELD(aggsplit, AggSplit);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(grpColIdx, local_node->numCols);
+ READ_OID_ARRAY(grpOperators, local_node->numCols);
+ READ_OID_ARRAY(grpCollations, local_node->numCols);
+ READ_LONG_FIELD(numGroups);
+ READ_UINT64_FIELD(transitionSpace);
+ READ_BITMAPSET_FIELD(aggParams);
+ READ_NODE_FIELD(groupingSets);
+ READ_NODE_FIELD(chain);
+
+ READ_DONE();
+}
+
+static WindowAgg *
+_readWindowAgg(void)
+{
+ READ_LOCALS(WindowAgg);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_UINT_FIELD(winref);
+ READ_INT_FIELD(partNumCols);
+ READ_ATTRNUMBER_ARRAY(partColIdx, local_node->partNumCols);
+ READ_OID_ARRAY(partOperators, local_node->partNumCols);
+ READ_OID_ARRAY(partCollations, local_node->partNumCols);
+ READ_INT_FIELD(ordNumCols);
+ READ_ATTRNUMBER_ARRAY(ordColIdx, local_node->ordNumCols);
+ READ_OID_ARRAY(ordOperators, local_node->ordNumCols);
+ READ_OID_ARRAY(ordCollations, local_node->ordNumCols);
+ READ_INT_FIELD(frameOptions);
+ READ_NODE_FIELD(startOffset);
+ READ_NODE_FIELD(endOffset);
+ READ_NODE_FIELD(runCondition);
+ READ_NODE_FIELD(runConditionOrig);
+ READ_OID_FIELD(startInRangeFunc);
+ READ_OID_FIELD(endInRangeFunc);
+ READ_OID_FIELD(inRangeColl);
+ READ_BOOL_FIELD(inRangeAsc);
+ READ_BOOL_FIELD(inRangeNullsFirst);
+ READ_BOOL_FIELD(topWindow);
+
+ READ_DONE();
+}
+
+static Unique *
+_readUnique(void)
+{
+ READ_LOCALS(Unique);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(uniqColIdx, local_node->numCols);
+ READ_OID_ARRAY(uniqOperators, local_node->numCols);
+ READ_OID_ARRAY(uniqCollations, local_node->numCols);
+
+ READ_DONE();
+}
+
+static Gather *
+_readGather(void)
+{
+ READ_LOCALS(Gather);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(num_workers);
+ READ_INT_FIELD(rescan_param);
+ READ_BOOL_FIELD(single_copy);
+ READ_BOOL_FIELD(invisible);
+ READ_BITMAPSET_FIELD(initParam);
+
+ READ_DONE();
+}
+
+static GatherMerge *
+_readGatherMerge(void)
+{
+ READ_LOCALS(GatherMerge);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_INT_FIELD(num_workers);
+ READ_INT_FIELD(rescan_param);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(sortColIdx, local_node->numCols);
+ READ_OID_ARRAY(sortOperators, local_node->numCols);
+ READ_OID_ARRAY(collations, local_node->numCols);
+ READ_BOOL_ARRAY(nullsFirst, local_node->numCols);
+ READ_BITMAPSET_FIELD(initParam);
+
+ READ_DONE();
+}
+
+static Hash *
+_readHash(void)
+{
+ READ_LOCALS(Hash);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_NODE_FIELD(hashkeys);
+ READ_OID_FIELD(skewTable);
+ READ_INT_FIELD(skewColumn);
+ READ_BOOL_FIELD(skewInherit);
+ READ_FLOAT_FIELD(rows_total);
+
+ READ_DONE();
+}
+
+static SetOp *
+_readSetOp(void)
+{
+ READ_LOCALS(SetOp);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_ENUM_FIELD(cmd, SetOpCmd);
+ READ_ENUM_FIELD(strategy, SetOpStrategy);
+ READ_INT_FIELD(numCols);
+ READ_ATTRNUMBER_ARRAY(dupColIdx, local_node->numCols);
+ READ_OID_ARRAY(dupOperators, local_node->numCols);
+ READ_OID_ARRAY(dupCollations, local_node->numCols);
+ READ_INT_FIELD(flagColIdx);
+ READ_INT_FIELD(firstFlag);
+ READ_LONG_FIELD(numGroups);
+
+ READ_DONE();
+}
+
+static LockRows *
+_readLockRows(void)
+{
+ READ_LOCALS(LockRows);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_NODE_FIELD(rowMarks);
+ READ_INT_FIELD(epqParam);
+
+ READ_DONE();
+}
+
+static Limit *
+_readLimit(void)
+{
+ READ_LOCALS(Limit);
+
+ READ_FLOAT_FIELD(plan.startup_cost);
+ READ_FLOAT_FIELD(plan.total_cost);
+ READ_FLOAT_FIELD(plan.plan_rows);
+ READ_INT_FIELD(plan.plan_width);
+ READ_BOOL_FIELD(plan.parallel_aware);
+ READ_BOOL_FIELD(plan.parallel_safe);
+ READ_BOOL_FIELD(plan.async_capable);
+ READ_INT_FIELD(plan.plan_node_id);
+ READ_NODE_FIELD(plan.targetlist);
+ READ_NODE_FIELD(plan.qual);
+ READ_NODE_FIELD(plan.lefttree);
+ READ_NODE_FIELD(plan.righttree);
+ READ_NODE_FIELD(plan.initPlan);
+ READ_BITMAPSET_FIELD(plan.extParam);
+ READ_BITMAPSET_FIELD(plan.allParam);
+ READ_NODE_FIELD(limitOffset);
+ READ_NODE_FIELD(limitCount);
+ READ_ENUM_FIELD(limitOption, LimitOption);
+ READ_INT_FIELD(uniqNumCols);
+ READ_ATTRNUMBER_ARRAY(uniqColIdx, local_node->uniqNumCols);
+ READ_OID_ARRAY(uniqOperators, local_node->uniqNumCols);
+ READ_OID_ARRAY(uniqCollations, local_node->uniqNumCols);
+
+ READ_DONE();
+}
+
+static PlanRowMark *
+_readPlanRowMark(void)
+{
+ READ_LOCALS(PlanRowMark);
+
+ READ_UINT_FIELD(rti);
+ READ_UINT_FIELD(prti);
+ READ_UINT_FIELD(rowmarkId);
+ READ_ENUM_FIELD(markType, RowMarkType);
+ READ_INT_FIELD(allMarkTypes);
+ READ_ENUM_FIELD(strength, LockClauseStrength);
+ READ_ENUM_FIELD(waitPolicy, LockWaitPolicy);
+ READ_BOOL_FIELD(isParent);
+
+ READ_DONE();
+}
+
+static PartitionPruneInfo *
+_readPartitionPruneInfo(void)
+{
+ READ_LOCALS(PartitionPruneInfo);
+
+ READ_NODE_FIELD(prune_infos);
+ READ_BITMAPSET_FIELD(other_subplans);
+
+ READ_DONE();
+}
+
+static PartitionedRelPruneInfo *
+_readPartitionedRelPruneInfo(void)
+{
+ READ_LOCALS(PartitionedRelPruneInfo);
+
+ READ_UINT_FIELD(rtindex);
+ READ_BITMAPSET_FIELD(present_parts);
+ READ_INT_FIELD(nparts);
+ READ_INT_ARRAY(subplan_map, local_node->nparts);
+ READ_INT_ARRAY(subpart_map, local_node->nparts);
+ READ_OID_ARRAY(relid_map, local_node->nparts);
+ READ_NODE_FIELD(initial_pruning_steps);
+ READ_NODE_FIELD(exec_pruning_steps);
+ READ_BITMAPSET_FIELD(execparamids);
+
+ READ_DONE();
+}
+
+static PartitionPruneStepOp *
+_readPartitionPruneStepOp(void)
+{
+ READ_LOCALS(PartitionPruneStepOp);
+
+ READ_INT_FIELD(step.step_id);
+ READ_INT_FIELD(opstrategy);
+ READ_NODE_FIELD(exprs);
+ READ_NODE_FIELD(cmpfns);
+ READ_BITMAPSET_FIELD(nullkeys);
+
+ READ_DONE();
+}
+
+static PartitionPruneStepCombine *
+_readPartitionPruneStepCombine(void)
+{
+ READ_LOCALS(PartitionPruneStepCombine);
+
+ READ_INT_FIELD(step.step_id);
+ READ_ENUM_FIELD(combineOp, PartitionPruneCombineOp);
+ READ_NODE_FIELD(source_stepids);
+
+ READ_DONE();
+}
+
+static PlanInvalItem *
+_readPlanInvalItem(void)
+{
+ READ_LOCALS(PlanInvalItem);
+
+ READ_INT_FIELD(cacheId);
+ READ_UINT_FIELD(hashValue);
+
+ READ_DONE();
+}