aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/outfuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
-rw-r--r--src/backend/nodes/outfuncs.c3908
1 files changed, 2 insertions, 3906 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index f26c129d596..9e70bbb4d69 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -307,840 +307,11 @@ outDatum(StringInfo str, Datum value, int typlen, bool typbyval)
#include "outfuncs.funcs.c"
-#ifdef OBSOLETE
-/*
- * Stuff from plannodes.h
- */
-
-static void
-_outPlannedStmt(StringInfo str, const PlannedStmt *node)
-{
- WRITE_NODE_TYPE("PLANNEDSTMT");
-
- WRITE_ENUM_FIELD(commandType, CmdType);
- WRITE_UINT64_FIELD(queryId);
- WRITE_BOOL_FIELD(hasReturning);
- WRITE_BOOL_FIELD(hasModifyingCTE);
- WRITE_BOOL_FIELD(canSetTag);
- WRITE_BOOL_FIELD(transientPlan);
- WRITE_BOOL_FIELD(dependsOnRole);
- WRITE_BOOL_FIELD(parallelModeNeeded);
- WRITE_INT_FIELD(jitFlags);
- WRITE_NODE_FIELD(planTree);
- WRITE_NODE_FIELD(rtable);
- WRITE_NODE_FIELD(resultRelations);
- WRITE_NODE_FIELD(appendRelations);
- WRITE_NODE_FIELD(subplans);
- WRITE_BITMAPSET_FIELD(rewindPlanIDs);
- WRITE_NODE_FIELD(rowMarks);
- WRITE_NODE_FIELD(relationOids);
- WRITE_NODE_FIELD(invalItems);
- WRITE_NODE_FIELD(paramExecTypes);
- WRITE_NODE_FIELD(utilityStmt);
- WRITE_LOCATION_FIELD(stmt_location);
- WRITE_INT_FIELD(stmt_len);
-}
-
-/*
- * print the basic stuff of all nodes that inherit from Plan
- */
-static void
-_outPlanInfo(StringInfo str, const Plan *node)
-{
- WRITE_FLOAT_FIELD(startup_cost, "%.2f");
- WRITE_FLOAT_FIELD(total_cost, "%.2f");
- WRITE_FLOAT_FIELD(plan_rows, "%.0f");
- WRITE_INT_FIELD(plan_width);
- WRITE_BOOL_FIELD(parallel_aware);
- WRITE_BOOL_FIELD(parallel_safe);
- WRITE_BOOL_FIELD(async_capable);
- WRITE_INT_FIELD(plan_node_id);
- WRITE_NODE_FIELD(targetlist);
- WRITE_NODE_FIELD(qual);
- WRITE_NODE_FIELD(lefttree);
- WRITE_NODE_FIELD(righttree);
- WRITE_NODE_FIELD(initPlan);
- WRITE_BITMAPSET_FIELD(extParam);
- WRITE_BITMAPSET_FIELD(allParam);
-}
-
-/*
- * print the basic stuff of all nodes that inherit from Scan
- */
-static void
-_outScanInfo(StringInfo str, const Scan *node)
-{
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_UINT_FIELD(scanrelid);
-}
/*
- * print the basic stuff of all nodes that inherit from Join
+ * Support functions for nodes with custom_read_write attribute or
+ * special_read_write attribute
*/
-static void
-_outJoinPlanInfo(StringInfo str, const Join *node)
-{
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_ENUM_FIELD(jointype, JoinType);
- WRITE_BOOL_FIELD(inner_unique);
- WRITE_NODE_FIELD(joinqual);
-}
-
-static void
-_outResult(StringInfo str, const Result *node)
-{
- WRITE_NODE_TYPE("RESULT");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_NODE_FIELD(resconstantqual);
-}
-
-static void
-_outProjectSet(StringInfo str, const ProjectSet *node)
-{
- WRITE_NODE_TYPE("PROJECTSET");
-
- _outPlanInfo(str, (const Plan *) node);
-}
-
-static void
-_outModifyTable(StringInfo str, const ModifyTable *node)
-{
- WRITE_NODE_TYPE("MODIFYTABLE");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_ENUM_FIELD(operation, CmdType);
- WRITE_BOOL_FIELD(canSetTag);
- WRITE_UINT_FIELD(nominalRelation);
- WRITE_UINT_FIELD(rootRelation);
- WRITE_BOOL_FIELD(partColsUpdated);
- WRITE_NODE_FIELD(resultRelations);
- WRITE_NODE_FIELD(updateColnosLists);
- WRITE_NODE_FIELD(withCheckOptionLists);
- WRITE_NODE_FIELD(returningLists);
- WRITE_NODE_FIELD(fdwPrivLists);
- WRITE_BITMAPSET_FIELD(fdwDirectModifyPlans);
- WRITE_NODE_FIELD(rowMarks);
- WRITE_INT_FIELD(epqParam);
- WRITE_ENUM_FIELD(onConflictAction, OnConflictAction);
- WRITE_NODE_FIELD(arbiterIndexes);
- WRITE_NODE_FIELD(onConflictSet);
- WRITE_NODE_FIELD(onConflictCols);
- WRITE_NODE_FIELD(onConflictWhere);
- WRITE_UINT_FIELD(exclRelRTI);
- WRITE_NODE_FIELD(exclRelTlist);
- WRITE_NODE_FIELD(mergeActionLists);
-}
-
-static void
-_outAppend(StringInfo str, const Append *node)
-{
- WRITE_NODE_TYPE("APPEND");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_BITMAPSET_FIELD(apprelids);
- WRITE_NODE_FIELD(appendplans);
- WRITE_INT_FIELD(nasyncplans);
- WRITE_INT_FIELD(first_partial_plan);
- WRITE_NODE_FIELD(part_prune_info);
-}
-
-static void
-_outMergeAppend(StringInfo str, const MergeAppend *node)
-{
- WRITE_NODE_TYPE("MERGEAPPEND");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_BITMAPSET_FIELD(apprelids);
- WRITE_NODE_FIELD(mergeplans);
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(sortColIdx, node->numCols);
- WRITE_OID_ARRAY(sortOperators, node->numCols);
- WRITE_OID_ARRAY(collations, node->numCols);
- WRITE_BOOL_ARRAY(nullsFirst, node->numCols);
- WRITE_NODE_FIELD(part_prune_info);
-}
-
-static void
-_outRecursiveUnion(StringInfo str, const RecursiveUnion *node)
-{
- WRITE_NODE_TYPE("RECURSIVEUNION");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(wtParam);
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(dupColIdx, node->numCols);
- WRITE_OID_ARRAY(dupOperators, node->numCols);
- WRITE_OID_ARRAY(dupCollations, node->numCols);
- WRITE_LONG_FIELD(numGroups);
-}
-
-static void
-_outBitmapAnd(StringInfo str, const BitmapAnd *node)
-{
- WRITE_NODE_TYPE("BITMAPAND");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_NODE_FIELD(bitmapplans);
-}
-
-static void
-_outBitmapOr(StringInfo str, const BitmapOr *node)
-{
- WRITE_NODE_TYPE("BITMAPOR");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_BOOL_FIELD(isshared);
- WRITE_NODE_FIELD(bitmapplans);
-}
-
-static void
-_outGather(StringInfo str, const Gather *node)
-{
- WRITE_NODE_TYPE("GATHER");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(num_workers);
- WRITE_INT_FIELD(rescan_param);
- WRITE_BOOL_FIELD(single_copy);
- WRITE_BOOL_FIELD(invisible);
- WRITE_BITMAPSET_FIELD(initParam);
-}
-
-static void
-_outGatherMerge(StringInfo str, const GatherMerge *node)
-{
- WRITE_NODE_TYPE("GATHERMERGE");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(num_workers);
- WRITE_INT_FIELD(rescan_param);
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(sortColIdx, node->numCols);
- WRITE_OID_ARRAY(sortOperators, node->numCols);
- WRITE_OID_ARRAY(collations, node->numCols);
- WRITE_BOOL_ARRAY(nullsFirst, node->numCols);
- WRITE_BITMAPSET_FIELD(initParam);
-}
-
-static void
-_outScan(StringInfo str, const Scan *node)
-{
- WRITE_NODE_TYPE("SCAN");
-
- _outScanInfo(str, node);
-}
-
-static void
-_outSeqScan(StringInfo str, const SeqScan *node)
-{
- WRITE_NODE_TYPE("SEQSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-}
-
-static void
-_outSampleScan(StringInfo str, const SampleScan *node)
-{
- WRITE_NODE_TYPE("SAMPLESCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(tablesample);
-}
-
-static void
-_outIndexScan(StringInfo str, const IndexScan *node)
-{
- WRITE_NODE_TYPE("INDEXSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_OID_FIELD(indexid);
- WRITE_NODE_FIELD(indexqual);
- WRITE_NODE_FIELD(indexqualorig);
- WRITE_NODE_FIELD(indexorderby);
- WRITE_NODE_FIELD(indexorderbyorig);
- WRITE_NODE_FIELD(indexorderbyops);
- WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
-}
-
-static void
-_outIndexOnlyScan(StringInfo str, const IndexOnlyScan *node)
-{
- WRITE_NODE_TYPE("INDEXONLYSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_OID_FIELD(indexid);
- WRITE_NODE_FIELD(indexqual);
- WRITE_NODE_FIELD(recheckqual);
- WRITE_NODE_FIELD(indexorderby);
- WRITE_NODE_FIELD(indextlist);
- WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
-}
-
-static void
-_outBitmapIndexScan(StringInfo str, const BitmapIndexScan *node)
-{
- WRITE_NODE_TYPE("BITMAPINDEXSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_OID_FIELD(indexid);
- WRITE_BOOL_FIELD(isshared);
- WRITE_NODE_FIELD(indexqual);
- WRITE_NODE_FIELD(indexqualorig);
-}
-
-static void
-_outBitmapHeapScan(StringInfo str, const BitmapHeapScan *node)
-{
- WRITE_NODE_TYPE("BITMAPHEAPSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(bitmapqualorig);
-}
-
-static void
-_outTidScan(StringInfo str, const TidScan *node)
-{
- WRITE_NODE_TYPE("TIDSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(tidquals);
-}
-
-static void
-_outTidRangeScan(StringInfo str, const TidRangeScan *node)
-{
- WRITE_NODE_TYPE("TIDRANGESCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(tidrangequals);
-}
-
-static void
-_outSubqueryScan(StringInfo str, const SubqueryScan *node)
-{
- WRITE_NODE_TYPE("SUBQUERYSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(subplan);
- WRITE_ENUM_FIELD(scanstatus, SubqueryScanStatus);
-}
-
-static void
-_outFunctionScan(StringInfo str, const FunctionScan *node)
-{
- WRITE_NODE_TYPE("FUNCTIONSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(functions);
- WRITE_BOOL_FIELD(funcordinality);
-}
-
-static void
-_outTableFuncScan(StringInfo str, const TableFuncScan *node)
-{
- WRITE_NODE_TYPE("TABLEFUNCSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(tablefunc);
-}
-
-static void
-_outValuesScan(StringInfo str, const ValuesScan *node)
-{
- WRITE_NODE_TYPE("VALUESSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_NODE_FIELD(values_lists);
-}
-
-static void
-_outCteScan(StringInfo str, const CteScan *node)
-{
- WRITE_NODE_TYPE("CTESCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_INT_FIELD(ctePlanId);
- WRITE_INT_FIELD(cteParam);
-}
-
-static void
-_outNamedTuplestoreScan(StringInfo str, const NamedTuplestoreScan *node)
-{
- WRITE_NODE_TYPE("NAMEDTUPLESTORESCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_STRING_FIELD(enrname);
-}
-
-static void
-_outWorkTableScan(StringInfo str, const WorkTableScan *node)
-{
- WRITE_NODE_TYPE("WORKTABLESCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_INT_FIELD(wtParam);
-}
-
-static void
-_outForeignScan(StringInfo str, const ForeignScan *node)
-{
- WRITE_NODE_TYPE("FOREIGNSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_ENUM_FIELD(operation, CmdType);
- WRITE_UINT_FIELD(resultRelation);
- WRITE_OID_FIELD(fs_server);
- WRITE_NODE_FIELD(fdw_exprs);
- WRITE_NODE_FIELD(fdw_private);
- WRITE_NODE_FIELD(fdw_scan_tlist);
- WRITE_NODE_FIELD(fdw_recheck_quals);
- WRITE_BITMAPSET_FIELD(fs_relids);
- WRITE_BOOL_FIELD(fsSystemCol);
-}
-
-static void
-_outCustomScan(StringInfo str, const CustomScan *node)
-{
- WRITE_NODE_TYPE("CUSTOMSCAN");
-
- _outScanInfo(str, (const Scan *) node);
-
- WRITE_UINT_FIELD(flags);
- WRITE_NODE_FIELD(custom_plans);
- WRITE_NODE_FIELD(custom_exprs);
- WRITE_NODE_FIELD(custom_private);
- WRITE_NODE_FIELD(custom_scan_tlist);
- WRITE_BITMAPSET_FIELD(custom_relids);
- /* CustomName is a key to lookup CustomScanMethods */
- appendStringInfoString(str, " :methods ");
- outToken(str, node->methods->CustomName);
-}
-
-static void
-_outNestLoop(StringInfo str, const NestLoop *node)
-{
- WRITE_NODE_TYPE("NESTLOOP");
-
- _outJoinPlanInfo(str, (const Join *) node);
-
- WRITE_NODE_FIELD(nestParams);
-}
-
-static void
-_outMergeJoin(StringInfo str, const MergeJoin *node)
-{
- int numCols;
-
- WRITE_NODE_TYPE("MERGEJOIN");
-
- _outJoinPlanInfo(str, (const Join *) node);
-
- WRITE_BOOL_FIELD(skip_mark_restore);
- WRITE_NODE_FIELD(mergeclauses);
-
- numCols = list_length(node->mergeclauses);
-
- WRITE_OID_ARRAY(mergeFamilies, numCols);
- WRITE_OID_ARRAY(mergeCollations, numCols);
- WRITE_INT_ARRAY(mergeStrategies, numCols);
- WRITE_BOOL_ARRAY(mergeNullsFirst, numCols);
-}
-
-static void
-_outHashJoin(StringInfo str, const HashJoin *node)
-{
- WRITE_NODE_TYPE("HASHJOIN");
-
- _outJoinPlanInfo(str, (const Join *) node);
-
- WRITE_NODE_FIELD(hashclauses);
- WRITE_NODE_FIELD(hashoperators);
- WRITE_NODE_FIELD(hashcollations);
- WRITE_NODE_FIELD(hashkeys);
-}
-
-static void
-_outAgg(StringInfo str, const Agg *node)
-{
- WRITE_NODE_TYPE("AGG");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
- WRITE_ENUM_FIELD(aggsplit, AggSplit);
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(grpColIdx, node->numCols);
- WRITE_OID_ARRAY(grpOperators, node->numCols);
- WRITE_OID_ARRAY(grpCollations, node->numCols);
- WRITE_LONG_FIELD(numGroups);
- WRITE_UINT64_FIELD(transitionSpace);
- WRITE_BITMAPSET_FIELD(aggParams);
- WRITE_NODE_FIELD(groupingSets);
- WRITE_NODE_FIELD(chain);
-}
-
-static void
-_outWindowAgg(StringInfo str, const WindowAgg *node)
-{
- WRITE_NODE_TYPE("WINDOWAGG");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_UINT_FIELD(winref);
- WRITE_INT_FIELD(partNumCols);
- WRITE_ATTRNUMBER_ARRAY(partColIdx, node->partNumCols);
- WRITE_OID_ARRAY(partOperators, node->partNumCols);
- WRITE_OID_ARRAY(partCollations, node->partNumCols);
- WRITE_INT_FIELD(ordNumCols);
- WRITE_ATTRNUMBER_ARRAY(ordColIdx, node->ordNumCols);
- WRITE_OID_ARRAY(ordOperators, node->ordNumCols);
- WRITE_OID_ARRAY(ordCollations, node->ordNumCols);
- WRITE_INT_FIELD(frameOptions);
- WRITE_NODE_FIELD(startOffset);
- WRITE_NODE_FIELD(endOffset);
- WRITE_NODE_FIELD(runCondition);
- WRITE_NODE_FIELD(runConditionOrig);
- WRITE_OID_FIELD(startInRangeFunc);
- WRITE_OID_FIELD(endInRangeFunc);
- WRITE_OID_FIELD(inRangeColl);
- WRITE_BOOL_FIELD(inRangeAsc);
- WRITE_BOOL_FIELD(inRangeNullsFirst);
- WRITE_BOOL_FIELD(topWindow);
-}
-
-static void
-_outGroup(StringInfo str, const Group *node)
-{
- WRITE_NODE_TYPE("GROUP");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(grpColIdx, node->numCols);
- WRITE_OID_ARRAY(grpOperators, node->numCols);
- WRITE_OID_ARRAY(grpCollations, node->numCols);
-}
-
-static void
-_outMaterial(StringInfo str, const Material *node)
-{
- WRITE_NODE_TYPE("MATERIAL");
-
- _outPlanInfo(str, (const Plan *) node);
-}
-
-static void
-_outMemoize(StringInfo str, const Memoize *node)
-{
- WRITE_NODE_TYPE("MEMOIZE");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(numKeys);
- WRITE_OID_ARRAY(hashOperators, node->numKeys);
- WRITE_OID_ARRAY(collations, node->numKeys);
- WRITE_NODE_FIELD(param_exprs);
- WRITE_BOOL_FIELD(singlerow);
- WRITE_BOOL_FIELD(binary_mode);
- WRITE_UINT_FIELD(est_entries);
- WRITE_BITMAPSET_FIELD(keyparamids);
-}
-
-static void
-_outSortInfo(StringInfo str, const Sort *node)
-{
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(sortColIdx, node->numCols);
- WRITE_OID_ARRAY(sortOperators, node->numCols);
- WRITE_OID_ARRAY(collations, node->numCols);
- WRITE_BOOL_ARRAY(nullsFirst, node->numCols);
-}
-
-static void
-_outSort(StringInfo str, const Sort *node)
-{
- WRITE_NODE_TYPE("SORT");
-
- _outSortInfo(str, node);
-}
-
-static void
-_outIncrementalSort(StringInfo str, const IncrementalSort *node)
-{
- WRITE_NODE_TYPE("INCREMENTALSORT");
-
- _outSortInfo(str, (const Sort *) node);
-
- WRITE_INT_FIELD(nPresortedCols);
-}
-
-static void
-_outUnique(StringInfo str, const Unique *node)
-{
- WRITE_NODE_TYPE("UNIQUE");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(uniqColIdx, node->numCols);
- WRITE_OID_ARRAY(uniqOperators, node->numCols);
- WRITE_OID_ARRAY(uniqCollations, node->numCols);
-}
-
-static void
-_outHash(StringInfo str, const Hash *node)
-{
- WRITE_NODE_TYPE("HASH");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_NODE_FIELD(hashkeys);
- WRITE_OID_FIELD(skewTable);
- WRITE_INT_FIELD(skewColumn);
- WRITE_BOOL_FIELD(skewInherit);
- WRITE_FLOAT_FIELD(rows_total, "%.0f");
-}
-
-static void
-_outSetOp(StringInfo str, const SetOp *node)
-{
- WRITE_NODE_TYPE("SETOP");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_ENUM_FIELD(cmd, SetOpCmd);
- WRITE_ENUM_FIELD(strategy, SetOpStrategy);
- WRITE_INT_FIELD(numCols);
- WRITE_ATTRNUMBER_ARRAY(dupColIdx, node->numCols);
- WRITE_OID_ARRAY(dupOperators, node->numCols);
- WRITE_OID_ARRAY(dupCollations, node->numCols);
- WRITE_INT_FIELD(flagColIdx);
- WRITE_INT_FIELD(firstFlag);
- WRITE_LONG_FIELD(numGroups);
-}
-
-static void
-_outLockRows(StringInfo str, const LockRows *node)
-{
- WRITE_NODE_TYPE("LOCKROWS");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_NODE_FIELD(rowMarks);
- WRITE_INT_FIELD(epqParam);
-}
-
-static void
-_outLimit(StringInfo str, const Limit *node)
-{
- WRITE_NODE_TYPE("LIMIT");
-
- _outPlanInfo(str, (const Plan *) node);
-
- WRITE_NODE_FIELD(limitOffset);
- WRITE_NODE_FIELD(limitCount);
- WRITE_ENUM_FIELD(limitOption, LimitOption);
- WRITE_INT_FIELD(uniqNumCols);
- WRITE_ATTRNUMBER_ARRAY(uniqColIdx, node->uniqNumCols);
- WRITE_OID_ARRAY(uniqOperators, node->uniqNumCols);
- WRITE_OID_ARRAY(uniqCollations, node->uniqNumCols);
-}
-
-static void
-_outNestLoopParam(StringInfo str, const NestLoopParam *node)
-{
- WRITE_NODE_TYPE("NESTLOOPPARAM");
-
- WRITE_INT_FIELD(paramno);
- WRITE_NODE_FIELD(paramval);
-}
-
-static void
-_outPlanRowMark(StringInfo str, const PlanRowMark *node)
-{
- WRITE_NODE_TYPE("PLANROWMARK");
-
- WRITE_UINT_FIELD(rti);
- WRITE_UINT_FIELD(prti);
- WRITE_UINT_FIELD(rowmarkId);
- WRITE_ENUM_FIELD(markType, RowMarkType);
- WRITE_INT_FIELD(allMarkTypes);
- WRITE_ENUM_FIELD(strength, LockClauseStrength);
- WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
- WRITE_BOOL_FIELD(isParent);
-}
-
-static void
-_outPartitionPruneInfo(StringInfo str, const PartitionPruneInfo *node)
-{
- WRITE_NODE_TYPE("PARTITIONPRUNEINFO");
-
- WRITE_NODE_FIELD(prune_infos);
- WRITE_BITMAPSET_FIELD(other_subplans);
-}
-
-static void
-_outPartitionedRelPruneInfo(StringInfo str, const PartitionedRelPruneInfo *node)
-{
- WRITE_NODE_TYPE("PARTITIONEDRELPRUNEINFO");
-
- WRITE_UINT_FIELD(rtindex);
- WRITE_BITMAPSET_FIELD(present_parts);
- WRITE_INT_FIELD(nparts);
- WRITE_INT_ARRAY(subplan_map, node->nparts);
- WRITE_INT_ARRAY(subpart_map, node->nparts);
- WRITE_OID_ARRAY(relid_map, node->nparts);
- WRITE_NODE_FIELD(initial_pruning_steps);
- WRITE_NODE_FIELD(exec_pruning_steps);
- WRITE_BITMAPSET_FIELD(execparamids);
-}
-
-static void
-_outPartitionPruneStepOp(StringInfo str, const PartitionPruneStepOp *node)
-{
- WRITE_NODE_TYPE("PARTITIONPRUNESTEPOP");
-
- WRITE_INT_FIELD(step.step_id);
- WRITE_INT_FIELD(opstrategy);
- WRITE_NODE_FIELD(exprs);
- WRITE_NODE_FIELD(cmpfns);
- WRITE_BITMAPSET_FIELD(nullkeys);
-}
-
-static void
-_outPartitionPruneStepCombine(StringInfo str, const PartitionPruneStepCombine *node)
-{
- WRITE_NODE_TYPE("PARTITIONPRUNESTEPCOMBINE");
-
- WRITE_INT_FIELD(step.step_id);
- WRITE_ENUM_FIELD(combineOp, PartitionPruneCombineOp);
- WRITE_NODE_FIELD(source_stepids);
-}
-
-static void
-_outPlanInvalItem(StringInfo str, const PlanInvalItem *node)
-{
- WRITE_NODE_TYPE("PLANINVALITEM");
-
- WRITE_INT_FIELD(cacheId);
- WRITE_UINT_FIELD(hashValue);
-}
-
-/*****************************************************************************
- *
- * Stuff from primnodes.h.
- *
- *****************************************************************************/
-
-static void
-_outAlias(StringInfo str, const Alias *node)
-{
- WRITE_NODE_TYPE("ALIAS");
-
- WRITE_STRING_FIELD(aliasname);
- WRITE_NODE_FIELD(colnames);
-}
-
-static void
-_outRangeVar(StringInfo str, const RangeVar *node)
-{
- WRITE_NODE_TYPE("RANGEVAR");
-
- /*
- * we deliberately ignore catalogname here, since it is presently not
- * semantically meaningful
- */
- WRITE_STRING_FIELD(schemaname);
- WRITE_STRING_FIELD(relname);
- WRITE_BOOL_FIELD(inh);
- WRITE_CHAR_FIELD(relpersistence);
- WRITE_NODE_FIELD(alias);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outTableFunc(StringInfo str, const TableFunc *node)
-{
- WRITE_NODE_TYPE("TABLEFUNC");
-
- WRITE_ENUM_FIELD(functype, TableFuncType);
- WRITE_NODE_FIELD(ns_uris);
- WRITE_NODE_FIELD(ns_names);
- WRITE_NODE_FIELD(docexpr);
- WRITE_NODE_FIELD(rowexpr);
- WRITE_NODE_FIELD(colnames);
- WRITE_NODE_FIELD(coltypes);
- WRITE_NODE_FIELD(coltypmods);
- WRITE_NODE_FIELD(colcollations);
- WRITE_NODE_FIELD(colexprs);
- WRITE_NODE_FIELD(coldefexprs);
- WRITE_NODE_FIELD(colvalexprs);
- WRITE_BITMAPSET_FIELD(notnulls);
- WRITE_NODE_FIELD(plan);
- WRITE_INT_FIELD(ordinalitycol);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outIntoClause(StringInfo str, const IntoClause *node)
-{
- WRITE_NODE_TYPE("INTOCLAUSE");
-
- WRITE_NODE_FIELD(rel);
- WRITE_NODE_FIELD(colNames);
- WRITE_STRING_FIELD(accessMethod);
- WRITE_NODE_FIELD(options);
- WRITE_ENUM_FIELD(onCommit, OnCommitAction);
- WRITE_STRING_FIELD(tableSpaceName);
- WRITE_NODE_FIELD(viewQuery);
- WRITE_BOOL_FIELD(skipData);
-}
-
-static void
-_outVar(StringInfo str, const Var *node)
-{
- WRITE_NODE_TYPE("VAR");
-
- WRITE_INT_FIELD(varno);
- WRITE_INT_FIELD(varattno);
- WRITE_OID_FIELD(vartype);
- WRITE_INT_FIELD(vartypmod);
- WRITE_OID_FIELD(varcollid);
- WRITE_UINT_FIELD(varlevelsup);
- WRITE_UINT_FIELD(varnosyn);
- WRITE_INT_FIELD(varattnosyn);
- WRITE_LOCATION_FIELD(location);
-}
-#endif /* OBSOLETE */
static void
_outConst(StringInfo str, const Const *node)
@@ -1162,179 +333,6 @@ _outConst(StringInfo str, const Const *node)
outDatum(str, node->constvalue, node->constlen, node->constbyval);
}
-#ifdef OBSOLETE
-static void
-_outParam(StringInfo str, const Param *node)
-{
- WRITE_NODE_TYPE("PARAM");
-
- WRITE_ENUM_FIELD(paramkind, ParamKind);
- WRITE_INT_FIELD(paramid);
- WRITE_OID_FIELD(paramtype);
- WRITE_INT_FIELD(paramtypmod);
- WRITE_OID_FIELD(paramcollid);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outAggref(StringInfo str, const Aggref *node)
-{
- WRITE_NODE_TYPE("AGGREF");
-
- WRITE_OID_FIELD(aggfnoid);
- WRITE_OID_FIELD(aggtype);
- WRITE_OID_FIELD(aggcollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_OID_FIELD(aggtranstype);
- WRITE_NODE_FIELD(aggargtypes);
- WRITE_NODE_FIELD(aggdirectargs);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(aggorder);
- WRITE_NODE_FIELD(aggdistinct);
- WRITE_NODE_FIELD(aggfilter);
- WRITE_BOOL_FIELD(aggstar);
- WRITE_BOOL_FIELD(aggvariadic);
- WRITE_CHAR_FIELD(aggkind);
- WRITE_UINT_FIELD(agglevelsup);
- WRITE_ENUM_FIELD(aggsplit, AggSplit);
- WRITE_INT_FIELD(aggno);
- WRITE_INT_FIELD(aggtransno);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outGroupingFunc(StringInfo str, const GroupingFunc *node)
-{
- WRITE_NODE_TYPE("GROUPINGFUNC");
-
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(refs);
- WRITE_NODE_FIELD(cols);
- WRITE_UINT_FIELD(agglevelsup);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outWindowFunc(StringInfo str, const WindowFunc *node)
-{
- WRITE_NODE_TYPE("WINDOWFUNC");
-
- WRITE_OID_FIELD(winfnoid);
- WRITE_OID_FIELD(wintype);
- WRITE_OID_FIELD(wincollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(aggfilter);
- WRITE_UINT_FIELD(winref);
- WRITE_BOOL_FIELD(winstar);
- WRITE_BOOL_FIELD(winagg);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outSubscriptingRef(StringInfo str, const SubscriptingRef *node)
-{
- WRITE_NODE_TYPE("SUBSCRIPTINGREF");
-
- WRITE_OID_FIELD(refcontainertype);
- WRITE_OID_FIELD(refelemtype);
- WRITE_OID_FIELD(refrestype);
- WRITE_INT_FIELD(reftypmod);
- WRITE_OID_FIELD(refcollid);
- WRITE_NODE_FIELD(refupperindexpr);
- WRITE_NODE_FIELD(reflowerindexpr);
- WRITE_NODE_FIELD(refexpr);
- WRITE_NODE_FIELD(refassgnexpr);
-}
-
-static void
-_outFuncExpr(StringInfo str, const FuncExpr *node)
-{
- WRITE_NODE_TYPE("FUNCEXPR");
-
- WRITE_OID_FIELD(funcid);
- WRITE_OID_FIELD(funcresulttype);
- WRITE_BOOL_FIELD(funcretset);
- WRITE_BOOL_FIELD(funcvariadic);
- WRITE_ENUM_FIELD(funcformat, CoercionForm);
- WRITE_OID_FIELD(funccollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outNamedArgExpr(StringInfo str, const NamedArgExpr *node)
-{
- WRITE_NODE_TYPE("NAMEDARGEXPR");
-
- WRITE_NODE_FIELD(arg);
- WRITE_STRING_FIELD(name);
- WRITE_INT_FIELD(argnumber);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outOpExpr(StringInfo str, const OpExpr *node)
-{
- WRITE_NODE_TYPE("OPEXPR");
-
- WRITE_OID_FIELD(opno);
- WRITE_OID_FIELD(opfuncid);
- WRITE_OID_FIELD(opresulttype);
- WRITE_BOOL_FIELD(opretset);
- WRITE_OID_FIELD(opcollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outDistinctExpr(StringInfo str, const DistinctExpr *node)
-{
- WRITE_NODE_TYPE("DISTINCTEXPR");
-
- WRITE_OID_FIELD(opno);
- WRITE_OID_FIELD(opfuncid);
- WRITE_OID_FIELD(opresulttype);
- WRITE_BOOL_FIELD(opretset);
- WRITE_OID_FIELD(opcollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outNullIfExpr(StringInfo str, const NullIfExpr *node)
-{
- WRITE_NODE_TYPE("NULLIFEXPR");
-
- WRITE_OID_FIELD(opno);
- WRITE_OID_FIELD(opfuncid);
- WRITE_OID_FIELD(opresulttype);
- WRITE_BOOL_FIELD(opretset);
- WRITE_OID_FIELD(opcollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outScalarArrayOpExpr(StringInfo str, const ScalarArrayOpExpr *node)
-{
- WRITE_NODE_TYPE("SCALARARRAYOPEXPR");
-
- WRITE_OID_FIELD(opno);
- WRITE_OID_FIELD(opfuncid);
- WRITE_OID_FIELD(hashfuncid);
- WRITE_OID_FIELD(negfuncid);
- WRITE_BOOL_FIELD(useOr);
- WRITE_OID_FIELD(inputcollid);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-#endif /* OBSOLETE */
-
static void
_outBoolExpr(StringInfo str, const BoolExpr *node)
{
@@ -1362,1221 +360,6 @@ _outBoolExpr(StringInfo str, const BoolExpr *node)
WRITE_LOCATION_FIELD(location);
}
-#ifdef OBSOLETE
-static void
-_outSubLink(StringInfo str, const SubLink *node)
-{
- WRITE_NODE_TYPE("SUBLINK");
-
- WRITE_ENUM_FIELD(subLinkType, SubLinkType);
- WRITE_INT_FIELD(subLinkId);
- WRITE_NODE_FIELD(testexpr);
- WRITE_NODE_FIELD(operName);
- WRITE_NODE_FIELD(subselect);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outSubPlan(StringInfo str, const SubPlan *node)
-{
- WRITE_NODE_TYPE("SUBPLAN");
-
- WRITE_ENUM_FIELD(subLinkType, SubLinkType);
- WRITE_NODE_FIELD(testexpr);
- WRITE_NODE_FIELD(paramIds);
- WRITE_INT_FIELD(plan_id);
- WRITE_STRING_FIELD(plan_name);
- WRITE_OID_FIELD(firstColType);
- WRITE_INT_FIELD(firstColTypmod);
- WRITE_OID_FIELD(firstColCollation);
- WRITE_BOOL_FIELD(useHashTable);
- WRITE_BOOL_FIELD(unknownEqFalse);
- WRITE_BOOL_FIELD(parallel_safe);
- WRITE_NODE_FIELD(setParam);
- WRITE_NODE_FIELD(parParam);
- WRITE_NODE_FIELD(args);
- WRITE_FLOAT_FIELD(startup_cost, "%.2f");
- WRITE_FLOAT_FIELD(per_call_cost, "%.2f");
-}
-
-static void
-_outAlternativeSubPlan(StringInfo str, const AlternativeSubPlan *node)
-{
- WRITE_NODE_TYPE("ALTERNATIVESUBPLAN");
-
- WRITE_NODE_FIELD(subplans);
-}
-
-static void
-_outFieldSelect(StringInfo str, const FieldSelect *node)
-{
- WRITE_NODE_TYPE("FIELDSELECT");
-
- WRITE_NODE_FIELD(arg);
- WRITE_INT_FIELD(fieldnum);
- WRITE_OID_FIELD(resulttype);
- WRITE_INT_FIELD(resulttypmod);
- WRITE_OID_FIELD(resultcollid);
-}
-
-static void
-_outFieldStore(StringInfo str, const FieldStore *node)
-{
- WRITE_NODE_TYPE("FIELDSTORE");
-
- WRITE_NODE_FIELD(arg);
- WRITE_NODE_FIELD(newvals);
- WRITE_NODE_FIELD(fieldnums);
- WRITE_OID_FIELD(resulttype);
-}
-
-static void
-_outRelabelType(StringInfo str, const RelabelType *node)
-{
- WRITE_NODE_TYPE("RELABELTYPE");
-
- WRITE_NODE_FIELD(arg);
- WRITE_OID_FIELD(resulttype);
- WRITE_INT_FIELD(resulttypmod);
- WRITE_OID_FIELD(resultcollid);
- WRITE_ENUM_FIELD(relabelformat, CoercionForm);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCoerceViaIO(StringInfo str, const CoerceViaIO *node)
-{
- WRITE_NODE_TYPE("COERCEVIAIO");
-
- WRITE_NODE_FIELD(arg);
- WRITE_OID_FIELD(resulttype);
- WRITE_OID_FIELD(resultcollid);
- WRITE_ENUM_FIELD(coerceformat, CoercionForm);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outArrayCoerceExpr(StringInfo str, const ArrayCoerceExpr *node)
-{
- WRITE_NODE_TYPE("ARRAYCOERCEEXPR");
-
- WRITE_NODE_FIELD(arg);
- WRITE_NODE_FIELD(elemexpr);
- WRITE_OID_FIELD(resulttype);
- WRITE_INT_FIELD(resulttypmod);
- WRITE_OID_FIELD(resultcollid);
- WRITE_ENUM_FIELD(coerceformat, CoercionForm);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outConvertRowtypeExpr(StringInfo str, const ConvertRowtypeExpr *node)
-{
- WRITE_NODE_TYPE("CONVERTROWTYPEEXPR");
-
- WRITE_NODE_FIELD(arg);
- WRITE_OID_FIELD(resulttype);
- WRITE_ENUM_FIELD(convertformat, CoercionForm);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCollateExpr(StringInfo str, const CollateExpr *node)
-{
- WRITE_NODE_TYPE("COLLATEEXPR");
-
- WRITE_NODE_FIELD(arg);
- WRITE_OID_FIELD(collOid);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCaseExpr(StringInfo str, const CaseExpr *node)
-{
- WRITE_NODE_TYPE("CASEEXPR");
-
- WRITE_OID_FIELD(casetype);
- WRITE_OID_FIELD(casecollid);
- WRITE_NODE_FIELD(arg);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(defresult);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCaseWhen(StringInfo str, const CaseWhen *node)
-{
- WRITE_NODE_TYPE("CASEWHEN");
-
- WRITE_NODE_FIELD(expr);
- WRITE_NODE_FIELD(result);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCaseTestExpr(StringInfo str, const CaseTestExpr *node)
-{
- WRITE_NODE_TYPE("CASETESTEXPR");
-
- WRITE_OID_FIELD(typeId);
- WRITE_INT_FIELD(typeMod);
- WRITE_OID_FIELD(collation);
-}
-
-static void
-_outArrayExpr(StringInfo str, const ArrayExpr *node)
-{
- WRITE_NODE_TYPE("ARRAYEXPR");
-
- WRITE_OID_FIELD(array_typeid);
- WRITE_OID_FIELD(array_collid);
- WRITE_OID_FIELD(element_typeid);
- WRITE_NODE_FIELD(elements);
- WRITE_BOOL_FIELD(multidims);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outRowExpr(StringInfo str, const RowExpr *node)
-{
- WRITE_NODE_TYPE("ROWEXPR");
-
- WRITE_NODE_FIELD(args);
- WRITE_OID_FIELD(row_typeid);
- WRITE_ENUM_FIELD(row_format, CoercionForm);
- WRITE_NODE_FIELD(colnames);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outRowCompareExpr(StringInfo str, const RowCompareExpr *node)
-{
- WRITE_NODE_TYPE("ROWCOMPAREEXPR");
-
- WRITE_ENUM_FIELD(rctype, RowCompareType);
- WRITE_NODE_FIELD(opnos);
- WRITE_NODE_FIELD(opfamilies);
- WRITE_NODE_FIELD(inputcollids);
- WRITE_NODE_FIELD(largs);
- WRITE_NODE_FIELD(rargs);
-}
-
-static void
-_outCoalesceExpr(StringInfo str, const CoalesceExpr *node)
-{
- WRITE_NODE_TYPE("COALESCEEXPR");
-
- WRITE_OID_FIELD(coalescetype);
- WRITE_OID_FIELD(coalescecollid);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outMinMaxExpr(StringInfo str, const MinMaxExpr *node)
-{
- WRITE_NODE_TYPE("MINMAXEXPR");
-
- WRITE_OID_FIELD(minmaxtype);
- WRITE_OID_FIELD(minmaxcollid);
- WRITE_OID_FIELD(inputcollid);
- WRITE_ENUM_FIELD(op, MinMaxOp);
- WRITE_NODE_FIELD(args);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outSQLValueFunction(StringInfo str, const SQLValueFunction *node)
-{
- WRITE_NODE_TYPE("SQLVALUEFUNCTION");
-
- WRITE_ENUM_FIELD(op, SQLValueFunctionOp);
- WRITE_OID_FIELD(type);
- WRITE_INT_FIELD(typmod);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outXmlExpr(StringInfo str, const XmlExpr *node)
-{
- WRITE_NODE_TYPE("XMLEXPR");
-
- WRITE_ENUM_FIELD(op, XmlExprOp);
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(named_args);
- WRITE_NODE_FIELD(arg_names);
- WRITE_NODE_FIELD(args);
- WRITE_ENUM_FIELD(xmloption, XmlOptionType);
- WRITE_OID_FIELD(type);
- WRITE_INT_FIELD(typmod);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outNullTest(StringInfo str, const NullTest *node)
-{
- WRITE_NODE_TYPE("NULLTEST");
-
- WRITE_NODE_FIELD(arg);
- WRITE_ENUM_FIELD(nulltesttype, NullTestType);
- WRITE_BOOL_FIELD(argisrow);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outBooleanTest(StringInfo str, const BooleanTest *node)
-{
- WRITE_NODE_TYPE("BOOLEANTEST");
-
- WRITE_NODE_FIELD(arg);
- WRITE_ENUM_FIELD(booltesttype, BoolTestType);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCoerceToDomain(StringInfo str, const CoerceToDomain *node)
-{
- WRITE_NODE_TYPE("COERCETODOMAIN");
-
- WRITE_NODE_FIELD(arg);
- WRITE_OID_FIELD(resulttype);
- WRITE_INT_FIELD(resulttypmod);
- WRITE_OID_FIELD(resultcollid);
- WRITE_ENUM_FIELD(coercionformat, CoercionForm);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCoerceToDomainValue(StringInfo str, const CoerceToDomainValue *node)
-{
- WRITE_NODE_TYPE("COERCETODOMAINVALUE");
-
- WRITE_OID_FIELD(typeId);
- WRITE_INT_FIELD(typeMod);
- WRITE_OID_FIELD(collation);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outSetToDefault(StringInfo str, const SetToDefault *node)
-{
- WRITE_NODE_TYPE("SETTODEFAULT");
-
- WRITE_OID_FIELD(typeId);
- WRITE_INT_FIELD(typeMod);
- WRITE_OID_FIELD(collation);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCurrentOfExpr(StringInfo str, const CurrentOfExpr *node)
-{
- WRITE_NODE_TYPE("CURRENTOFEXPR");
-
- WRITE_UINT_FIELD(cvarno);
- WRITE_STRING_FIELD(cursor_name);
- WRITE_INT_FIELD(cursor_param);
-}
-
-static void
-_outNextValueExpr(StringInfo str, const NextValueExpr *node)
-{
- WRITE_NODE_TYPE("NEXTVALUEEXPR");
-
- WRITE_OID_FIELD(seqid);
- WRITE_OID_FIELD(typeId);
-}
-
-static void
-_outInferenceElem(StringInfo str, const InferenceElem *node)
-{
- WRITE_NODE_TYPE("INFERENCEELEM");
-
- WRITE_NODE_FIELD(expr);
- WRITE_OID_FIELD(infercollid);
- WRITE_OID_FIELD(inferopclass);
-}
-
-static void
-_outTargetEntry(StringInfo str, const TargetEntry *node)
-{
- WRITE_NODE_TYPE("TARGETENTRY");
-
- WRITE_NODE_FIELD(expr);
- WRITE_INT_FIELD(resno);
- WRITE_STRING_FIELD(resname);
- WRITE_UINT_FIELD(ressortgroupref);
- WRITE_OID_FIELD(resorigtbl);
- WRITE_INT_FIELD(resorigcol);
- WRITE_BOOL_FIELD(resjunk);
-}
-
-static void
-_outRangeTblRef(StringInfo str, const RangeTblRef *node)
-{
- WRITE_NODE_TYPE("RANGETBLREF");
-
- WRITE_INT_FIELD(rtindex);
-}
-
-static void
-_outJoinExpr(StringInfo str, const JoinExpr *node)
-{
- WRITE_NODE_TYPE("JOINEXPR");
-
- WRITE_ENUM_FIELD(jointype, JoinType);
- WRITE_BOOL_FIELD(isNatural);
- WRITE_NODE_FIELD(larg);
- WRITE_NODE_FIELD(rarg);
- WRITE_NODE_FIELD(usingClause);
- WRITE_NODE_FIELD(join_using_alias);
- WRITE_NODE_FIELD(quals);
- WRITE_NODE_FIELD(alias);
- WRITE_INT_FIELD(rtindex);
-}
-
-static void
-_outFromExpr(StringInfo str, const FromExpr *node)
-{
- WRITE_NODE_TYPE("FROMEXPR");
-
- WRITE_NODE_FIELD(fromlist);
- WRITE_NODE_FIELD(quals);
-}
-
-static void
-_outOnConflictExpr(StringInfo str, const OnConflictExpr *node)
-{
- WRITE_NODE_TYPE("ONCONFLICTEXPR");
-
- WRITE_ENUM_FIELD(action, OnConflictAction);
- WRITE_NODE_FIELD(arbiterElems);
- WRITE_NODE_FIELD(arbiterWhere);
- WRITE_OID_FIELD(constraint);
- WRITE_NODE_FIELD(onConflictSet);
- WRITE_NODE_FIELD(onConflictWhere);
- WRITE_INT_FIELD(exclRelIndex);
- WRITE_NODE_FIELD(exclRelTlist);
-}
-
-static void
-_outJsonFormat(StringInfo str, const JsonFormat *node)
-{
- WRITE_NODE_TYPE("JSONFORMAT");
-
- WRITE_ENUM_FIELD(format_type, JsonFormatType);
- WRITE_ENUM_FIELD(encoding, JsonEncoding);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outJsonReturning(StringInfo str, const JsonReturning *node)
-{
- WRITE_NODE_TYPE("JSONRETURNING");
-
- WRITE_NODE_FIELD(format);
- WRITE_OID_FIELD(typid);
- WRITE_INT_FIELD(typmod);
-}
-
-static void
-_outJsonValueExpr(StringInfo str, const JsonValueExpr *node)
-{
- WRITE_NODE_TYPE("JSONVALUEEXPR");
-
- WRITE_NODE_FIELD(raw_expr);
- WRITE_NODE_FIELD(formatted_expr);
- WRITE_NODE_FIELD(format);
-}
-
-static void
-_outJsonConstructorExpr(StringInfo str, const JsonConstructorExpr *node)
-{
- WRITE_NODE_TYPE("JSONCONSTRUCTOREXPR");
-
- WRITE_ENUM_FIELD(type, JsonConstructorType);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(func);
- WRITE_NODE_FIELD(coercion);
- WRITE_NODE_FIELD(returning);
- WRITE_BOOL_FIELD(absent_on_null);
- WRITE_BOOL_FIELD(unique);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outJsonIsPredicate(StringInfo str, const JsonIsPredicate *node)
-{
- WRITE_NODE_TYPE("JSONISPREDICATE");
-
- WRITE_NODE_FIELD(expr);
- WRITE_NODE_FIELD(format);
- WRITE_ENUM_FIELD(item_type, JsonValueType);
- WRITE_BOOL_FIELD(unique_keys);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outJsonBehavior(StringInfo str, const JsonBehavior *node)
-{
- WRITE_NODE_TYPE("JSONBEHAVIOR");
-
- WRITE_ENUM_FIELD(btype, JsonBehaviorType);
- WRITE_NODE_FIELD(default_expr);
-}
-
-static void
-_outJsonExpr(StringInfo str, const JsonExpr *node)
-{
- WRITE_NODE_TYPE("JSONEXPR");
-
- WRITE_ENUM_FIELD(op, JsonExprOp);
- WRITE_NODE_FIELD(formatted_expr);
- WRITE_NODE_FIELD(result_coercion);
- WRITE_NODE_FIELD(format);
- WRITE_NODE_FIELD(path_spec);
- WRITE_NODE_FIELD(passing_names);
- WRITE_NODE_FIELD(passing_values);
- WRITE_NODE_FIELD(returning);
- WRITE_NODE_FIELD(on_empty);
- WRITE_NODE_FIELD(on_error);
- WRITE_NODE_FIELD(coercions);
- WRITE_ENUM_FIELD(wrapper, JsonWrapper);
- WRITE_BOOL_FIELD(omit_quotes);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outJsonCoercion(StringInfo str, const JsonCoercion *node)
-{
- WRITE_NODE_TYPE("JSONCOERCION");
-
- WRITE_NODE_FIELD(expr);
- WRITE_BOOL_FIELD(via_populate);
- WRITE_BOOL_FIELD(via_io);
- WRITE_OID_FIELD(collation);
-}
-
-static void
-_outJsonItemCoercions(StringInfo str, const JsonItemCoercions *node)
-{
- WRITE_NODE_TYPE("JSONITEMCOERCIONS");
-
- WRITE_NODE_FIELD(null);
- WRITE_NODE_FIELD(string);
- WRITE_NODE_FIELD(numeric);
- WRITE_NODE_FIELD(boolean);
- WRITE_NODE_FIELD(date);
- WRITE_NODE_FIELD(time);
- WRITE_NODE_FIELD(timetz);
- WRITE_NODE_FIELD(timestamp);
- WRITE_NODE_FIELD(timestamptz);
- WRITE_NODE_FIELD(composite);
-}
-
-static void
-_outJsonTableParent(StringInfo str, const JsonTableParent *node)
-{
- WRITE_NODE_TYPE("JSONTABLEPARENT");
-
- WRITE_NODE_FIELD(path);
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(child);
- WRITE_BOOL_FIELD(outerJoin);
- WRITE_INT_FIELD(colMin);
- WRITE_INT_FIELD(colMax);
- WRITE_BOOL_FIELD(errorOnError);
-}
-
-static void
-_outJsonTableSibling(StringInfo str, const JsonTableSibling *node)
-{
- WRITE_NODE_TYPE("JSONTABLESIBLING");
-
- WRITE_NODE_FIELD(larg);
- WRITE_NODE_FIELD(rarg);
- WRITE_BOOL_FIELD(cross);
-}
-
-/*****************************************************************************
- *
- * Stuff from pathnodes.h.
- *
- *****************************************************************************/
-
-/*
- * print the basic stuff of all nodes that inherit from Path
- *
- * Note we do NOT print the parent, else we'd be in infinite recursion.
- * We can print the parent's relids for identification purposes, though.
- * We print the pathtarget only if it's not the default one for the rel.
- * We also do not print the whole of param_info, since it's printed by
- * _outRelOptInfo; it's sufficient and less cluttering to print just the
- * required outer relids.
- */
-static void
-_outPathInfo(StringInfo str, const Path *node)
-{
- WRITE_ENUM_FIELD(pathtype, NodeTag);
- appendStringInfoString(str, " :parent_relids ");
- outBitmapset(str, node->parent->relids);
- if (node->pathtarget != node->parent->reltarget)
- WRITE_NODE_FIELD(pathtarget);
- appendStringInfoString(str, " :required_outer ");
- if (node->param_info)
- outBitmapset(str, node->param_info->ppi_req_outer);
- else
- outBitmapset(str, NULL);
- WRITE_BOOL_FIELD(parallel_aware);
- WRITE_BOOL_FIELD(parallel_safe);
- WRITE_INT_FIELD(parallel_workers);
- WRITE_FLOAT_FIELD(rows, "%.0f");
- WRITE_FLOAT_FIELD(startup_cost, "%.2f");
- WRITE_FLOAT_FIELD(total_cost, "%.2f");
- WRITE_NODE_FIELD(pathkeys);
-}
-
-/*
- * print the basic stuff of all nodes that inherit from JoinPath
- */
-static void
-_outJoinPathInfo(StringInfo str, const JoinPath *node)
-{
- _outPathInfo(str, (const Path *) node);
-
- WRITE_ENUM_FIELD(jointype, JoinType);
- WRITE_BOOL_FIELD(inner_unique);
- WRITE_NODE_FIELD(outerjoinpath);
- WRITE_NODE_FIELD(innerjoinpath);
- WRITE_NODE_FIELD(joinrestrictinfo);
-}
-
-static void
-_outPath(StringInfo str, const Path *node)
-{
- WRITE_NODE_TYPE("PATH");
-
- _outPathInfo(str, (const Path *) node);
-}
-
-static void
-_outIndexPath(StringInfo str, const IndexPath *node)
-{
- WRITE_NODE_TYPE("INDEXPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(indexinfo);
- WRITE_NODE_FIELD(indexclauses);
- WRITE_NODE_FIELD(indexorderbys);
- WRITE_NODE_FIELD(indexorderbycols);
- WRITE_ENUM_FIELD(indexscandir, ScanDirection);
- WRITE_FLOAT_FIELD(indextotalcost, "%.2f");
- WRITE_FLOAT_FIELD(indexselectivity, "%.4f");
-}
-
-static void
-_outBitmapHeapPath(StringInfo str, const BitmapHeapPath *node)
-{
- WRITE_NODE_TYPE("BITMAPHEAPPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(bitmapqual);
-}
-
-static void
-_outBitmapAndPath(StringInfo str, const BitmapAndPath *node)
-{
- WRITE_NODE_TYPE("BITMAPANDPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(bitmapquals);
- WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
-}
-
-static void
-_outBitmapOrPath(StringInfo str, const BitmapOrPath *node)
-{
- WRITE_NODE_TYPE("BITMAPORPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(bitmapquals);
- WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
-}
-
-static void
-_outTidPath(StringInfo str, const TidPath *node)
-{
- WRITE_NODE_TYPE("TIDPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(tidquals);
-}
-
-static void
-_outTidRangePath(StringInfo str, const TidRangePath *node)
-{
- WRITE_NODE_TYPE("TIDRANGEPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(tidrangequals);
-}
-
-static void
-_outSubqueryScanPath(StringInfo str, const SubqueryScanPath *node)
-{
- WRITE_NODE_TYPE("SUBQUERYSCANPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
-}
-
-static void
-_outForeignPath(StringInfo str, const ForeignPath *node)
-{
- WRITE_NODE_TYPE("FOREIGNPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(fdw_outerpath);
- WRITE_NODE_FIELD(fdw_private);
-}
-
-static void
-_outCustomPath(StringInfo str, const CustomPath *node)
-{
- WRITE_NODE_TYPE("CUSTOMPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_UINT_FIELD(flags);
- WRITE_NODE_FIELD(custom_paths);
- WRITE_NODE_FIELD(custom_private);
- appendStringInfoString(str, " :methods ");
- outToken(str, node->methods->CustomName);
-}
-
-static void
-_outAppendPath(StringInfo str, const AppendPath *node)
-{
- WRITE_NODE_TYPE("APPENDPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpaths);
- WRITE_INT_FIELD(first_partial_path);
- WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
-}
-
-static void
-_outMergeAppendPath(StringInfo str, const MergeAppendPath *node)
-{
- WRITE_NODE_TYPE("MERGEAPPENDPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpaths);
- WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
-}
-
-static void
-_outGroupResultPath(StringInfo str, const GroupResultPath *node)
-{
- WRITE_NODE_TYPE("GROUPRESULTPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(quals);
-}
-
-static void
-_outMaterialPath(StringInfo str, const MaterialPath *node)
-{
- WRITE_NODE_TYPE("MATERIALPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
-}
-
-static void
-_outMemoizePath(StringInfo str, const MemoizePath *node)
-{
- WRITE_NODE_TYPE("MEMOIZEPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_NODE_FIELD(hash_operators);
- WRITE_NODE_FIELD(param_exprs);
- WRITE_BOOL_FIELD(singlerow);
- WRITE_BOOL_FIELD(binary_mode);
- WRITE_FLOAT_FIELD(calls, "%.0f");
- WRITE_UINT_FIELD(est_entries);
-}
-
-static void
-_outUniquePath(StringInfo str, const UniquePath *node)
-{
- WRITE_NODE_TYPE("UNIQUEPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_ENUM_FIELD(umethod, UniquePathMethod);
- WRITE_NODE_FIELD(in_operators);
- WRITE_NODE_FIELD(uniq_exprs);
-}
-
-static void
-_outGatherPath(StringInfo str, const GatherPath *node)
-{
- WRITE_NODE_TYPE("GATHERPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_BOOL_FIELD(single_copy);
- WRITE_INT_FIELD(num_workers);
-}
-
-static void
-_outProjectionPath(StringInfo str, const ProjectionPath *node)
-{
- WRITE_NODE_TYPE("PROJECTIONPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_BOOL_FIELD(dummypp);
-}
-
-static void
-_outProjectSetPath(StringInfo str, const ProjectSetPath *node)
-{
- WRITE_NODE_TYPE("PROJECTSETPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
-}
-
-static void
-_outSortPathInfo(StringInfo str, const SortPath *node)
-{
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
-}
-
-static void
-_outSortPath(StringInfo str, const SortPath *node)
-{
- WRITE_NODE_TYPE("SORTPATH");
-
- _outSortPathInfo(str, node);
-}
-
-static void
-_outIncrementalSortPath(StringInfo str, const IncrementalSortPath *node)
-{
- WRITE_NODE_TYPE("INCREMENTALSORTPATH");
-
- _outSortPathInfo(str, (const SortPath *) node);
-
- WRITE_INT_FIELD(nPresortedCols);
-}
-
-static void
-_outGroupPath(StringInfo str, const GroupPath *node)
-{
- WRITE_NODE_TYPE("GROUPPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_NODE_FIELD(groupClause);
- WRITE_NODE_FIELD(qual);
-}
-
-static void
-_outUpperUniquePath(StringInfo str, const UpperUniquePath *node)
-{
- WRITE_NODE_TYPE("UPPERUNIQUEPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_INT_FIELD(numkeys);
-}
-
-static void
-_outAggPath(StringInfo str, const AggPath *node)
-{
- WRITE_NODE_TYPE("AGGPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
- WRITE_ENUM_FIELD(aggsplit, AggSplit);
- WRITE_FLOAT_FIELD(numGroups, "%.0f");
- WRITE_UINT64_FIELD(transitionSpace);
- WRITE_NODE_FIELD(groupClause);
- WRITE_NODE_FIELD(qual);
-}
-
-static void
-_outRollupData(StringInfo str, const RollupData *node)
-{
- WRITE_NODE_TYPE("ROLLUP");
-
- WRITE_NODE_FIELD(groupClause);
- WRITE_NODE_FIELD(gsets);
- WRITE_NODE_FIELD(gsets_data);
- WRITE_FLOAT_FIELD(numGroups, "%.0f");
- WRITE_BOOL_FIELD(hashable);
- WRITE_BOOL_FIELD(is_hashed);
-}
-
-static void
-_outGroupingSetData(StringInfo str, const GroupingSetData *node)
-{
- WRITE_NODE_TYPE("GSDATA");
-
- WRITE_NODE_FIELD(set);
- WRITE_FLOAT_FIELD(numGroups, "%.0f");
-}
-
-static void
-_outGroupingSetsPath(StringInfo str, const GroupingSetsPath *node)
-{
- WRITE_NODE_TYPE("GROUPINGSETSPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
- WRITE_NODE_FIELD(rollups);
- WRITE_NODE_FIELD(qual);
- WRITE_UINT64_FIELD(transitionSpace);
-}
-
-static void
-_outMinMaxAggPath(StringInfo str, const MinMaxAggPath *node)
-{
- WRITE_NODE_TYPE("MINMAXAGGPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(mmaggregates);
- WRITE_NODE_FIELD(quals);
-}
-
-static void
-_outWindowAggPath(StringInfo str, const WindowAggPath *node)
-{
- WRITE_NODE_TYPE("WINDOWAGGPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_NODE_FIELD(winclause);
- WRITE_NODE_FIELD(qual);
- WRITE_BOOL_FIELD(topwindow);
-}
-
-static void
-_outSetOpPath(StringInfo str, const SetOpPath *node)
-{
- WRITE_NODE_TYPE("SETOPPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_ENUM_FIELD(cmd, SetOpCmd);
- WRITE_ENUM_FIELD(strategy, SetOpStrategy);
- WRITE_NODE_FIELD(distinctList);
- WRITE_INT_FIELD(flagColIdx);
- WRITE_INT_FIELD(firstFlag);
- WRITE_FLOAT_FIELD(numGroups, "%.0f");
-}
-
-static void
-_outRecursiveUnionPath(StringInfo str, const RecursiveUnionPath *node)
-{
- WRITE_NODE_TYPE("RECURSIVEUNIONPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(leftpath);
- WRITE_NODE_FIELD(rightpath);
- WRITE_NODE_FIELD(distinctList);
- WRITE_INT_FIELD(wtParam);
- WRITE_FLOAT_FIELD(numGroups, "%.0f");
-}
-
-static void
-_outLockRowsPath(StringInfo str, const LockRowsPath *node)
-{
- WRITE_NODE_TYPE("LOCKROWSPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_NODE_FIELD(rowMarks);
- WRITE_INT_FIELD(epqParam);
-}
-
-static void
-_outModifyTablePath(StringInfo str, const ModifyTablePath *node)
-{
- WRITE_NODE_TYPE("MODIFYTABLEPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_ENUM_FIELD(operation, CmdType);
- WRITE_BOOL_FIELD(canSetTag);
- WRITE_UINT_FIELD(nominalRelation);
- WRITE_UINT_FIELD(rootRelation);
- WRITE_BOOL_FIELD(partColsUpdated);
- WRITE_NODE_FIELD(resultRelations);
- WRITE_NODE_FIELD(updateColnosLists);
- WRITE_NODE_FIELD(withCheckOptionLists);
- WRITE_NODE_FIELD(returningLists);
- WRITE_NODE_FIELD(rowMarks);
- WRITE_NODE_FIELD(onconflict);
- WRITE_INT_FIELD(epqParam);
- WRITE_NODE_FIELD(mergeActionLists);
-}
-
-static void
-_outLimitPath(StringInfo str, const LimitPath *node)
-{
- WRITE_NODE_TYPE("LIMITPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_NODE_FIELD(limitOffset);
- WRITE_NODE_FIELD(limitCount);
- WRITE_ENUM_FIELD(limitOption, LimitOption);
-}
-
-static void
-_outGatherMergePath(StringInfo str, const GatherMergePath *node)
-{
- WRITE_NODE_TYPE("GATHERMERGEPATH");
-
- _outPathInfo(str, (const Path *) node);
-
- WRITE_NODE_FIELD(subpath);
- WRITE_INT_FIELD(num_workers);
-}
-
-static void
-_outNestPath(StringInfo str, const NestPath *node)
-{
- WRITE_NODE_TYPE("NESTPATH");
-
- _outJoinPathInfo(str, (const JoinPath *) node);
-}
-
-static void
-_outMergePath(StringInfo str, const MergePath *node)
-{
- WRITE_NODE_TYPE("MERGEPATH");
-
- _outJoinPathInfo(str, (const JoinPath *) node);
-
- WRITE_NODE_FIELD(path_mergeclauses);
- WRITE_NODE_FIELD(outersortkeys);
- WRITE_NODE_FIELD(innersortkeys);
- WRITE_BOOL_FIELD(skip_mark_restore);
- WRITE_BOOL_FIELD(materialize_inner);
-}
-
-static void
-_outHashPath(StringInfo str, const HashPath *node)
-{
- WRITE_NODE_TYPE("HASHPATH");
-
- _outJoinPathInfo(str, (const JoinPath *) node);
-
- WRITE_NODE_FIELD(path_hashclauses);
- WRITE_INT_FIELD(num_batches);
- WRITE_FLOAT_FIELD(inner_rows_total, "%.0f");
-}
-
-static void
-_outPlannerGlobal(StringInfo str, const PlannerGlobal *node)
-{
- WRITE_NODE_TYPE("PLANNERGLOBAL");
-
- /* NB: this isn't a complete set of fields */
- WRITE_NODE_FIELD(subplans);
- WRITE_BITMAPSET_FIELD(rewindPlanIDs);
- WRITE_NODE_FIELD(finalrtable);
- WRITE_NODE_FIELD(finalrowmarks);
- WRITE_NODE_FIELD(resultRelations);
- WRITE_NODE_FIELD(appendRelations);
- WRITE_NODE_FIELD(relationOids);
- WRITE_NODE_FIELD(invalItems);
- WRITE_NODE_FIELD(paramExecTypes);
- WRITE_UINT_FIELD(lastPHId);
- WRITE_UINT_FIELD(lastRowMarkId);
- WRITE_INT_FIELD(lastPlanNodeId);
- WRITE_BOOL_FIELD(transientPlan);
- WRITE_BOOL_FIELD(dependsOnRole);
- WRITE_BOOL_FIELD(parallelModeOK);
- WRITE_BOOL_FIELD(parallelModeNeeded);
- WRITE_CHAR_FIELD(maxParallelHazard);
-}
-
-static void
-_outPlannerInfo(StringInfo str, const PlannerInfo *node)
-{
- WRITE_NODE_TYPE("PLANNERINFO");
-
- /* NB: this isn't a complete set of fields */
- WRITE_NODE_FIELD(parse);
- WRITE_NODE_FIELD(glob);
- WRITE_UINT_FIELD(query_level);
- WRITE_NODE_FIELD(plan_params);
- WRITE_BITMAPSET_FIELD(outer_params);
- WRITE_BITMAPSET_FIELD(all_baserels);
- WRITE_BITMAPSET_FIELD(nullable_baserels);
- WRITE_NODE_FIELD(join_rel_list);
- WRITE_INT_FIELD(join_cur_level);
- WRITE_NODE_FIELD(init_plans);
- WRITE_NODE_FIELD(cte_plan_ids);
- WRITE_NODE_FIELD(multiexpr_params);
- WRITE_NODE_FIELD(eq_classes);
- WRITE_BOOL_FIELD(ec_merging_done);
- WRITE_NODE_FIELD(canon_pathkeys);
- WRITE_NODE_FIELD(left_join_clauses);
- WRITE_NODE_FIELD(right_join_clauses);
- WRITE_NODE_FIELD(full_join_clauses);
- WRITE_NODE_FIELD(join_info_list);
- WRITE_BITMAPSET_FIELD(all_result_relids);
- WRITE_BITMAPSET_FIELD(leaf_result_relids);
- WRITE_NODE_FIELD(append_rel_list);
- WRITE_NODE_FIELD(row_identity_vars);
- WRITE_NODE_FIELD(rowMarks);
- WRITE_NODE_FIELD(placeholder_list);
- WRITE_NODE_FIELD(fkey_list);
- WRITE_NODE_FIELD(query_pathkeys);
- WRITE_NODE_FIELD(group_pathkeys);
- WRITE_NODE_FIELD(window_pathkeys);
- WRITE_NODE_FIELD(distinct_pathkeys);
- WRITE_NODE_FIELD(sort_pathkeys);
- WRITE_NODE_FIELD(processed_tlist);
- WRITE_NODE_FIELD(update_colnos);
- WRITE_NODE_FIELD(minmax_aggs);
- WRITE_FLOAT_FIELD(total_table_pages, "%.0f");
- WRITE_FLOAT_FIELD(tuple_fraction, "%.4f");
- WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
- WRITE_UINT_FIELD(qual_security_level);
- WRITE_BOOL_FIELD(hasJoinRTEs);
- WRITE_BOOL_FIELD(hasLateralRTEs);
- WRITE_BOOL_FIELD(hasHavingQual);
- WRITE_BOOL_FIELD(hasPseudoConstantQuals);
- WRITE_BOOL_FIELD(hasAlternativeSubPlans);
- WRITE_BOOL_FIELD(hasRecursion);
- WRITE_INT_FIELD(wt_param_id);
- WRITE_BITMAPSET_FIELD(curOuterRels);
- WRITE_NODE_FIELD(curOuterParams);
- WRITE_BOOL_FIELD(partColsUpdated);
-}
-
-static void
-_outRelOptInfo(StringInfo str, const RelOptInfo *node)
-{
- WRITE_NODE_TYPE("RELOPTINFO");
-
- /* NB: this isn't a complete set of fields */
- WRITE_ENUM_FIELD(reloptkind, RelOptKind);
- WRITE_BITMAPSET_FIELD(relids);
- WRITE_FLOAT_FIELD(rows, "%.0f");
- WRITE_BOOL_FIELD(consider_startup);
- WRITE_BOOL_FIELD(consider_param_startup);
- WRITE_BOOL_FIELD(consider_parallel);
- WRITE_NODE_FIELD(reltarget);
- WRITE_NODE_FIELD(pathlist);
- WRITE_NODE_FIELD(ppilist);
- WRITE_NODE_FIELD(partial_pathlist);
- WRITE_NODE_FIELD(cheapest_startup_path);
- WRITE_NODE_FIELD(cheapest_total_path);
- WRITE_NODE_FIELD(cheapest_unique_path);
- WRITE_NODE_FIELD(cheapest_parameterized_paths);
- WRITE_BITMAPSET_FIELD(direct_lateral_relids);
- WRITE_BITMAPSET_FIELD(lateral_relids);
- WRITE_UINT_FIELD(relid);
- WRITE_OID_FIELD(reltablespace);
- WRITE_ENUM_FIELD(rtekind, RTEKind);
- WRITE_INT_FIELD(min_attr);
- WRITE_INT_FIELD(max_attr);
- WRITE_NODE_FIELD(lateral_vars);
- WRITE_BITMAPSET_FIELD(lateral_referencers);
- WRITE_NODE_FIELD(indexlist);
- WRITE_NODE_FIELD(statlist);
- WRITE_UINT_FIELD(pages);
- WRITE_FLOAT_FIELD(tuples, "%.0f");
- WRITE_FLOAT_FIELD(allvisfrac, "%.6f");
- WRITE_BITMAPSET_FIELD(eclass_indexes);
- WRITE_NODE_FIELD(subroot);
- WRITE_NODE_FIELD(subplan_params);
- WRITE_INT_FIELD(rel_parallel_workers);
- WRITE_UINT_FIELD(amflags);
- WRITE_OID_FIELD(serverid);
- WRITE_OID_FIELD(userid);
- WRITE_BOOL_FIELD(useridiscurrent);
- /* we don't try to print fdwroutine or fdw_private */
- /* can't print unique_for_rels/non_unique_for_rels; BMSes aren't Nodes */
- WRITE_NODE_FIELD(baserestrictinfo);
- WRITE_UINT_FIELD(baserestrict_min_security);
- WRITE_NODE_FIELD(joininfo);
- WRITE_BOOL_FIELD(has_eclass_joins);
- WRITE_BOOL_FIELD(consider_partitionwise_join);
- WRITE_BITMAPSET_FIELD(top_parent_relids);
- WRITE_BOOL_FIELD(partbounds_merged);
- WRITE_BITMAPSET_FIELD(live_parts);
- WRITE_BITMAPSET_FIELD(all_partrels);
-}
-
-static void
-_outIndexOptInfo(StringInfo str, const IndexOptInfo *node)
-{
- WRITE_NODE_TYPE("INDEXOPTINFO");
-
- /* NB: this isn't a complete set of fields */
- WRITE_OID_FIELD(indexoid);
- /* Do NOT print rel field, else infinite recursion */
- WRITE_UINT_FIELD(pages);
- WRITE_FLOAT_FIELD(tuples, "%.0f");
- WRITE_INT_FIELD(tree_height);
- WRITE_INT_FIELD(ncolumns);
- /* array fields aren't really worth the trouble to print */
- WRITE_OID_FIELD(relam);
- /* indexprs is redundant since we print indextlist */
- WRITE_NODE_FIELD(indpred);
- WRITE_NODE_FIELD(indextlist);
- WRITE_NODE_FIELD(indrestrictinfo);
- WRITE_BOOL_FIELD(predOK);
- WRITE_BOOL_FIELD(unique);
- WRITE_BOOL_FIELD(immediate);
- WRITE_BOOL_FIELD(hypothetical);
- /* we don't bother with fields copied from the index AM's API struct */
-}
-#endif /* OBSOLETE */
-
static void
_outForeignKeyOptInfo(StringInfo str, const ForeignKeyOptInfo *node)
{
@@ -2603,20 +386,6 @@ _outForeignKeyOptInfo(StringInfo str, const ForeignKeyOptInfo *node)
appendStringInfo(str, " %d", list_length(node->rinfos[i]));
}
-#ifdef OBSOLETE
-static void
-_outStatisticExtInfo(StringInfo str, const StatisticExtInfo *node)
-{
- WRITE_NODE_TYPE("STATISTICEXTINFO");
-
- /* NB: this isn't a complete set of fields */
- WRITE_OID_FIELD(statOid);
- /* don't write rel, leads to infinite recursion in plan tree dump */
- WRITE_CHAR_FIELD(kind);
- WRITE_BITMAPSET_FIELD(keys);
-}
-#endif /* OBSOLETE */
-
static void
_outEquivalenceClass(StringInfo str, const EquivalenceClass *node)
{
@@ -2644,199 +413,6 @@ _outEquivalenceClass(StringInfo str, const EquivalenceClass *node)
WRITE_UINT_FIELD(ec_max_security);
}
-#ifdef OBSOLETE
-static void
-_outEquivalenceMember(StringInfo str, const EquivalenceMember *node)
-{
- WRITE_NODE_TYPE("EQUIVALENCEMEMBER");
-
- WRITE_NODE_FIELD(em_expr);
- WRITE_BITMAPSET_FIELD(em_relids);
- WRITE_BITMAPSET_FIELD(em_nullable_relids);
- WRITE_BOOL_FIELD(em_is_const);
- WRITE_BOOL_FIELD(em_is_child);
- WRITE_OID_FIELD(em_datatype);
-}
-
-static void
-_outPathKey(StringInfo str, const PathKey *node)
-{
- WRITE_NODE_TYPE("PATHKEY");
-
- WRITE_NODE_FIELD(pk_eclass);
- WRITE_OID_FIELD(pk_opfamily);
- WRITE_INT_FIELD(pk_strategy);
- WRITE_BOOL_FIELD(pk_nulls_first);
-}
-
-static void
-_outPathTarget(StringInfo str, const PathTarget *node)
-{
- WRITE_NODE_TYPE("PATHTARGET");
-
- WRITE_NODE_FIELD(exprs);
- WRITE_INDEX_ARRAY(sortgrouprefs, list_length(node->exprs));
- WRITE_FLOAT_FIELD(cost.startup, "%.2f");
- WRITE_FLOAT_FIELD(cost.per_tuple, "%.2f");
- WRITE_INT_FIELD(width);
- WRITE_ENUM_FIELD(has_volatile_expr, VolatileFunctionStatus);
-}
-
-static void
-_outParamPathInfo(StringInfo str, const ParamPathInfo *node)
-{
- WRITE_NODE_TYPE("PARAMPATHINFO");
-
- WRITE_BITMAPSET_FIELD(ppi_req_outer);
- WRITE_FLOAT_FIELD(ppi_rows, "%.0f");
- WRITE_NODE_FIELD(ppi_clauses);
-}
-
-static void
-_outRestrictInfo(StringInfo str, const RestrictInfo *node)
-{
- WRITE_NODE_TYPE("RESTRICTINFO");
-
- /* NB: this isn't a complete set of fields */
- WRITE_NODE_FIELD(clause);
- WRITE_BOOL_FIELD(is_pushed_down);
- WRITE_BOOL_FIELD(outerjoin_delayed);
- WRITE_BOOL_FIELD(can_join);
- WRITE_BOOL_FIELD(pseudoconstant);
- WRITE_BOOL_FIELD(leakproof);
- WRITE_ENUM_FIELD(has_volatile, VolatileFunctionStatus);
- WRITE_UINT_FIELD(security_level);
- WRITE_BITMAPSET_FIELD(clause_relids);
- WRITE_BITMAPSET_FIELD(required_relids);
- WRITE_BITMAPSET_FIELD(outer_relids);
- WRITE_BITMAPSET_FIELD(nullable_relids);
- WRITE_BITMAPSET_FIELD(left_relids);
- WRITE_BITMAPSET_FIELD(right_relids);
- WRITE_NODE_FIELD(orclause);
- /* don't write parent_ec, leads to infinite recursion in plan tree dump */
- WRITE_FLOAT_FIELD(norm_selec, "%.4f");
- WRITE_FLOAT_FIELD(outer_selec, "%.4f");
- WRITE_NODE_FIELD(mergeopfamilies);
- /* don't write left_ec, leads to infinite recursion in plan tree dump */
- /* don't write right_ec, leads to infinite recursion in plan tree dump */
- WRITE_NODE_FIELD(left_em);
- WRITE_NODE_FIELD(right_em);
- WRITE_BOOL_FIELD(outer_is_left);
- WRITE_OID_FIELD(hashjoinoperator);
- WRITE_OID_FIELD(left_hasheqoperator);
- WRITE_OID_FIELD(right_hasheqoperator);
-}
-
-static void
-_outIndexClause(StringInfo str, const IndexClause *node)
-{
- WRITE_NODE_TYPE("INDEXCLAUSE");
-
- WRITE_NODE_FIELD(rinfo);
- WRITE_NODE_FIELD(indexquals);
- WRITE_BOOL_FIELD(lossy);
- WRITE_INT_FIELD(indexcol);
- WRITE_NODE_FIELD(indexcols);
-}
-
-static void
-_outPlaceHolderVar(StringInfo str, const PlaceHolderVar *node)
-{
- WRITE_NODE_TYPE("PLACEHOLDERVAR");
-
- WRITE_NODE_FIELD(phexpr);
- WRITE_BITMAPSET_FIELD(phrels);
- WRITE_UINT_FIELD(phid);
- WRITE_UINT_FIELD(phlevelsup);
-}
-
-static void
-_outSpecialJoinInfo(StringInfo str, const SpecialJoinInfo *node)
-{
- WRITE_NODE_TYPE("SPECIALJOININFO");
-
- WRITE_BITMAPSET_FIELD(min_lefthand);
- WRITE_BITMAPSET_FIELD(min_righthand);
- WRITE_BITMAPSET_FIELD(syn_lefthand);
- WRITE_BITMAPSET_FIELD(syn_righthand);
- WRITE_ENUM_FIELD(jointype, JoinType);
- WRITE_BOOL_FIELD(lhs_strict);
- WRITE_BOOL_FIELD(delay_upper_joins);
- WRITE_BOOL_FIELD(semi_can_btree);
- WRITE_BOOL_FIELD(semi_can_hash);
- WRITE_NODE_FIELD(semi_operators);
- WRITE_NODE_FIELD(semi_rhs_exprs);
-}
-
-static void
-_outAppendRelInfo(StringInfo str, const AppendRelInfo *node)
-{
- WRITE_NODE_TYPE("APPENDRELINFO");
-
- WRITE_UINT_FIELD(parent_relid);
- WRITE_UINT_FIELD(child_relid);
- WRITE_OID_FIELD(parent_reltype);
- WRITE_OID_FIELD(child_reltype);
- WRITE_NODE_FIELD(translated_vars);
- WRITE_INT_FIELD(num_child_cols);
- WRITE_ATTRNUMBER_ARRAY(parent_colnos, node->num_child_cols);
- WRITE_OID_FIELD(parent_reloid);
-}
-
-static void
-_outRowIdentityVarInfo(StringInfo str, const RowIdentityVarInfo *node)
-{
- WRITE_NODE_TYPE("ROWIDENTITYVARINFO");
-
- WRITE_NODE_FIELD(rowidvar);
- WRITE_INT_FIELD(rowidwidth);
- WRITE_STRING_FIELD(rowidname);
- WRITE_BITMAPSET_FIELD(rowidrels);
-}
-
-static void
-_outPlaceHolderInfo(StringInfo str, const PlaceHolderInfo *node)
-{
- WRITE_NODE_TYPE("PLACEHOLDERINFO");
-
- WRITE_UINT_FIELD(phid);
- WRITE_NODE_FIELD(ph_var);
- WRITE_BITMAPSET_FIELD(ph_eval_at);
- WRITE_BITMAPSET_FIELD(ph_lateral);
- WRITE_BITMAPSET_FIELD(ph_needed);
- WRITE_INT_FIELD(ph_width);
-}
-
-static void
-_outMinMaxAggInfo(StringInfo str, const MinMaxAggInfo *node)
-{
- WRITE_NODE_TYPE("MINMAXAGGINFO");
-
- WRITE_OID_FIELD(aggfnoid);
- WRITE_OID_FIELD(aggsortop);
- WRITE_NODE_FIELD(target);
- /* We intentionally omit subroot --- too large, not interesting enough */
- WRITE_NODE_FIELD(path);
- WRITE_FLOAT_FIELD(pathcost, "%.2f");
- WRITE_NODE_FIELD(param);
-}
-
-static void
-_outPlannerParamItem(StringInfo str, const PlannerParamItem *node)
-{
- WRITE_NODE_TYPE("PLANNERPARAMITEM");
-
- WRITE_NODE_FIELD(item);
- WRITE_INT_FIELD(paramId);
-}
-#endif /* OBSOLETE */
-
-/*****************************************************************************
- *
- * Stuff from extensible.h
- *
- *****************************************************************************/
-
static void
_outExtensibleNode(StringInfo str, const ExtensibleNode *node)
{
@@ -2852,342 +428,6 @@ _outExtensibleNode(StringInfo str, const ExtensibleNode *node)
methods->nodeOut(str, node);
}
-#ifdef OBSOLETE
-/*****************************************************************************
- *
- * Stuff from parsenodes.h.
- *
- *****************************************************************************/
-
-/*
- * print the basic stuff of all nodes that inherit from CreateStmt
- */
-static void
-_outCreateStmtInfo(StringInfo str, const CreateStmt *node)
-{
- WRITE_NODE_FIELD(relation);
- WRITE_NODE_FIELD(tableElts);
- WRITE_NODE_FIELD(inhRelations);
- WRITE_NODE_FIELD(partspec);
- WRITE_NODE_FIELD(partbound);
- WRITE_NODE_FIELD(ofTypename);
- WRITE_NODE_FIELD(constraints);
- WRITE_NODE_FIELD(options);
- WRITE_ENUM_FIELD(oncommit, OnCommitAction);
- WRITE_STRING_FIELD(tablespacename);
- WRITE_STRING_FIELD(accessMethod);
- WRITE_BOOL_FIELD(if_not_exists);
-}
-
-static void
-_outCreateStmt(StringInfo str, const CreateStmt *node)
-{
- WRITE_NODE_TYPE("CREATESTMT");
-
- _outCreateStmtInfo(str, (const CreateStmt *) node);
-}
-
-static void
-_outCreateForeignTableStmt(StringInfo str, const CreateForeignTableStmt *node)
-{
- WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT");
-
- _outCreateStmtInfo(str, (const CreateStmt *) node);
-
- WRITE_STRING_FIELD(servername);
- WRITE_NODE_FIELD(options);
-}
-
-static void
-_outImportForeignSchemaStmt(StringInfo str, const ImportForeignSchemaStmt *node)
-{
- WRITE_NODE_TYPE("IMPORTFOREIGNSCHEMASTMT");
-
- WRITE_STRING_FIELD(server_name);
- WRITE_STRING_FIELD(remote_schema);
- WRITE_STRING_FIELD(local_schema);
- WRITE_ENUM_FIELD(list_type, ImportForeignSchemaType);
- WRITE_NODE_FIELD(table_list);
- WRITE_NODE_FIELD(options);
-}
-
-static void
-_outIndexStmt(StringInfo str, const IndexStmt *node)
-{
- WRITE_NODE_TYPE("INDEXSTMT");
-
- WRITE_STRING_FIELD(idxname);
- WRITE_NODE_FIELD(relation);
- WRITE_STRING_FIELD(accessMethod);
- WRITE_STRING_FIELD(tableSpace);
- WRITE_NODE_FIELD(indexParams);
- WRITE_NODE_FIELD(indexIncludingParams);
- WRITE_NODE_FIELD(options);
- WRITE_NODE_FIELD(whereClause);
- WRITE_NODE_FIELD(excludeOpNames);
- WRITE_STRING_FIELD(idxcomment);
- WRITE_OID_FIELD(indexOid);
- WRITE_OID_FIELD(oldNumber);
- WRITE_UINT_FIELD(oldCreateSubid);
- WRITE_UINT_FIELD(oldFirstRelfilelocatorSubid);
- WRITE_BOOL_FIELD(unique);
- WRITE_BOOL_FIELD(nulls_not_distinct);
- WRITE_BOOL_FIELD(primary);
- WRITE_BOOL_FIELD(isconstraint);
- WRITE_BOOL_FIELD(deferrable);
- WRITE_BOOL_FIELD(initdeferred);
- WRITE_BOOL_FIELD(transformed);
- WRITE_BOOL_FIELD(concurrent);
- WRITE_BOOL_FIELD(if_not_exists);
- WRITE_BOOL_FIELD(reset_default_tblspc);
-}
-
-static void
-_outCreateStatsStmt(StringInfo str, const CreateStatsStmt *node)
-{
- WRITE_NODE_TYPE("CREATESTATSSTMT");
-
- WRITE_NODE_FIELD(defnames);
- WRITE_NODE_FIELD(stat_types);
- WRITE_NODE_FIELD(exprs);
- WRITE_NODE_FIELD(relations);
- WRITE_STRING_FIELD(stxcomment);
- WRITE_BOOL_FIELD(transformed);
- WRITE_BOOL_FIELD(if_not_exists);
-}
-
-static void
-_outAlterStatsStmt(StringInfo str, const AlterStatsStmt *node)
-{
- WRITE_NODE_TYPE("ALTERSTATSSTMT");
-
- WRITE_NODE_FIELD(defnames);
- WRITE_INT_FIELD(stxstattarget);
- WRITE_BOOL_FIELD(missing_ok);
-}
-
-static void
-_outNotifyStmt(StringInfo str, const NotifyStmt *node)
-{
- WRITE_NODE_TYPE("NOTIFYSTMT");
-
- WRITE_STRING_FIELD(conditionname);
- WRITE_STRING_FIELD(payload);
-}
-
-static void
-_outDeclareCursorStmt(StringInfo str, const DeclareCursorStmt *node)
-{
- WRITE_NODE_TYPE("DECLARECURSORSTMT");
-
- WRITE_STRING_FIELD(portalname);
- WRITE_INT_FIELD(options);
- WRITE_NODE_FIELD(query);
-}
-
-static void
-_outSelectStmt(StringInfo str, const SelectStmt *node)
-{
- WRITE_NODE_TYPE("SELECT");
-
- WRITE_NODE_FIELD(distinctClause);
- WRITE_NODE_FIELD(intoClause);
- WRITE_NODE_FIELD(targetList);
- WRITE_NODE_FIELD(fromClause);
- WRITE_NODE_FIELD(whereClause);
- WRITE_NODE_FIELD(groupClause);
- WRITE_BOOL_FIELD(groupDistinct);
- WRITE_NODE_FIELD(havingClause);
- WRITE_NODE_FIELD(windowClause);
- WRITE_NODE_FIELD(valuesLists);
- WRITE_NODE_FIELD(sortClause);
- WRITE_NODE_FIELD(limitOffset);
- WRITE_NODE_FIELD(limitCount);
- WRITE_ENUM_FIELD(limitOption, LimitOption);
- WRITE_NODE_FIELD(lockingClause);
- WRITE_NODE_FIELD(withClause);
- WRITE_ENUM_FIELD(op, SetOperation);
- WRITE_BOOL_FIELD(all);
- WRITE_NODE_FIELD(larg);
- WRITE_NODE_FIELD(rarg);
-}
-
-static void
-_outReturnStmt(StringInfo str, const ReturnStmt *node)
-{
- WRITE_NODE_TYPE("RETURN");
-
- WRITE_NODE_FIELD(returnval);
-}
-
-static void
-_outPLAssignStmt(StringInfo str, const PLAssignStmt *node)
-{
- WRITE_NODE_TYPE("PLASSIGN");
-
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(indirection);
- WRITE_INT_FIELD(nnames);
- WRITE_NODE_FIELD(val);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outFuncCall(StringInfo str, const FuncCall *node)
-{
- WRITE_NODE_TYPE("FUNCCALL");
-
- WRITE_NODE_FIELD(funcname);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(agg_order);
- WRITE_NODE_FIELD(agg_filter);
- WRITE_NODE_FIELD(over);
- WRITE_BOOL_FIELD(agg_within_group);
- WRITE_BOOL_FIELD(agg_star);
- WRITE_BOOL_FIELD(agg_distinct);
- WRITE_BOOL_FIELD(func_variadic);
- WRITE_ENUM_FIELD(funcformat, CoercionForm);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outDefElem(StringInfo str, const DefElem *node)
-{
- WRITE_NODE_TYPE("DEFELEM");
-
- WRITE_STRING_FIELD(defnamespace);
- WRITE_STRING_FIELD(defname);
- WRITE_NODE_FIELD(arg);
- WRITE_ENUM_FIELD(defaction, DefElemAction);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outTableLikeClause(StringInfo str, const TableLikeClause *node)
-{
- WRITE_NODE_TYPE("TABLELIKECLAUSE");
-
- WRITE_NODE_FIELD(relation);
- WRITE_UINT_FIELD(options);
- WRITE_OID_FIELD(relationOid);
-}
-
-static void
-_outLockingClause(StringInfo str, const LockingClause *node)
-{
- WRITE_NODE_TYPE("LOCKINGCLAUSE");
-
- WRITE_NODE_FIELD(lockedRels);
- WRITE_ENUM_FIELD(strength, LockClauseStrength);
- WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
-}
-
-static void
-_outXmlSerialize(StringInfo str, const XmlSerialize *node)
-{
- WRITE_NODE_TYPE("XMLSERIALIZE");
-
- WRITE_ENUM_FIELD(xmloption, XmlOptionType);
- WRITE_NODE_FIELD(expr);
- WRITE_NODE_FIELD(typeName);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outTriggerTransition(StringInfo str, const TriggerTransition *node)
-{
- WRITE_NODE_TYPE("TRIGGERTRANSITION");
-
- WRITE_STRING_FIELD(name);
- WRITE_BOOL_FIELD(isNew);
- WRITE_BOOL_FIELD(isTable);
-}
-
-static void
-_outColumnDef(StringInfo str, const ColumnDef *node)
-{
- WRITE_NODE_TYPE("COLUMNDEF");
-
- WRITE_STRING_FIELD(colname);
- WRITE_NODE_FIELD(typeName);
- WRITE_STRING_FIELD(compression);
- WRITE_INT_FIELD(inhcount);
- WRITE_BOOL_FIELD(is_local);
- WRITE_BOOL_FIELD(is_not_null);
- WRITE_BOOL_FIELD(is_from_type);
- WRITE_CHAR_FIELD(storage);
- WRITE_NODE_FIELD(raw_default);
- WRITE_NODE_FIELD(cooked_default);
- WRITE_CHAR_FIELD(identity);
- WRITE_NODE_FIELD(identitySequence);
- WRITE_CHAR_FIELD(generated);
- WRITE_NODE_FIELD(collClause);
- WRITE_OID_FIELD(collOid);
- WRITE_NODE_FIELD(constraints);
- WRITE_NODE_FIELD(fdwoptions);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outTypeName(StringInfo str, const TypeName *node)
-{
- WRITE_NODE_TYPE("TYPENAME");
-
- WRITE_NODE_FIELD(names);
- WRITE_OID_FIELD(typeOid);
- WRITE_BOOL_FIELD(setof);
- WRITE_BOOL_FIELD(pct_type);
- WRITE_NODE_FIELD(typmods);
- WRITE_INT_FIELD(typemod);
- WRITE_NODE_FIELD(arrayBounds);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outTypeCast(StringInfo str, const TypeCast *node)
-{
- WRITE_NODE_TYPE("TYPECAST");
-
- WRITE_NODE_FIELD(arg);
- WRITE_NODE_FIELD(typeName);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCollateClause(StringInfo str, const CollateClause *node)
-{
- WRITE_NODE_TYPE("COLLATECLAUSE");
-
- WRITE_NODE_FIELD(arg);
- WRITE_NODE_FIELD(collname);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outIndexElem(StringInfo str, const IndexElem *node)
-{
- WRITE_NODE_TYPE("INDEXELEM");
-
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(expr);
- WRITE_STRING_FIELD(indexcolname);
- WRITE_NODE_FIELD(collation);
- WRITE_NODE_FIELD(opclass);
- WRITE_NODE_FIELD(opclassopts);
- WRITE_ENUM_FIELD(ordering, SortByDir);
- WRITE_ENUM_FIELD(nulls_ordering, SortByNulls);
-}
-
-static void
-_outStatsElem(StringInfo str, const StatsElem *node)
-{
- WRITE_NODE_TYPE("STATSELEM");
-
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(expr);
-}
-#endif /* OBSOLETE */
-
static void
_outQuery(StringInfo str, const Query *node)
{
@@ -3261,174 +501,6 @@ _outQuery(StringInfo str, const Query *node)
WRITE_INT_FIELD(stmt_len);
}
-#ifdef OBSOLETE
-static void
-_outWithCheckOption(StringInfo str, const WithCheckOption *node)
-{
- WRITE_NODE_TYPE("WITHCHECKOPTION");
-
- WRITE_ENUM_FIELD(kind, WCOKind);
- WRITE_STRING_FIELD(relname);
- WRITE_STRING_FIELD(polname);
- WRITE_NODE_FIELD(qual);
- WRITE_BOOL_FIELD(cascaded);
-}
-
-static void
-_outSortGroupClause(StringInfo str, const SortGroupClause *node)
-{
- WRITE_NODE_TYPE("SORTGROUPCLAUSE");
-
- WRITE_UINT_FIELD(tleSortGroupRef);
- WRITE_OID_FIELD(eqop);
- WRITE_OID_FIELD(sortop);
- WRITE_BOOL_FIELD(nulls_first);
- WRITE_BOOL_FIELD(hashable);
-}
-
-static void
-_outGroupingSet(StringInfo str, const GroupingSet *node)
-{
- WRITE_NODE_TYPE("GROUPINGSET");
-
- WRITE_ENUM_FIELD(kind, GroupingSetKind);
- WRITE_NODE_FIELD(content);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outWindowClause(StringInfo str, const WindowClause *node)
-{
- WRITE_NODE_TYPE("WINDOWCLAUSE");
-
- WRITE_STRING_FIELD(name);
- WRITE_STRING_FIELD(refname);
- WRITE_NODE_FIELD(partitionClause);
- WRITE_NODE_FIELD(orderClause);
- WRITE_INT_FIELD(frameOptions);
- WRITE_NODE_FIELD(startOffset);
- WRITE_NODE_FIELD(endOffset);
- WRITE_NODE_FIELD(runCondition);
- WRITE_OID_FIELD(startInRangeFunc);
- WRITE_OID_FIELD(endInRangeFunc);
- WRITE_OID_FIELD(inRangeColl);
- WRITE_BOOL_FIELD(inRangeAsc);
- WRITE_BOOL_FIELD(inRangeNullsFirst);
- WRITE_UINT_FIELD(winref);
- WRITE_BOOL_FIELD(copiedOrder);
-}
-
-static void
-_outRowMarkClause(StringInfo str, const RowMarkClause *node)
-{
- WRITE_NODE_TYPE("ROWMARKCLAUSE");
-
- WRITE_UINT_FIELD(rti);
- WRITE_ENUM_FIELD(strength, LockClauseStrength);
- WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
- WRITE_BOOL_FIELD(pushedDown);
-}
-
-static void
-_outWithClause(StringInfo str, const WithClause *node)
-{
- WRITE_NODE_TYPE("WITHCLAUSE");
-
- WRITE_NODE_FIELD(ctes);
- WRITE_BOOL_FIELD(recursive);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCTESearchClause(StringInfo str, const CTESearchClause *node)
-{
- WRITE_NODE_TYPE("CTESEARCHCLAUSE");
-
- WRITE_NODE_FIELD(search_col_list);
- WRITE_BOOL_FIELD(search_breadth_first);
- WRITE_STRING_FIELD(search_seq_column);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outCTECycleClause(StringInfo str, const CTECycleClause *node)
-{
- WRITE_NODE_TYPE("CTECYCLECLAUSE");
-
- WRITE_NODE_FIELD(cycle_col_list);
- WRITE_STRING_FIELD(cycle_mark_column);
- WRITE_NODE_FIELD(cycle_mark_value);
- WRITE_NODE_FIELD(cycle_mark_default);
- WRITE_STRING_FIELD(cycle_path_column);
- WRITE_LOCATION_FIELD(location);
- WRITE_OID_FIELD(cycle_mark_type);
- WRITE_INT_FIELD(cycle_mark_typmod);
- WRITE_OID_FIELD(cycle_mark_collation);
- WRITE_OID_FIELD(cycle_mark_neop);
-}
-
-static void
-_outCommonTableExpr(StringInfo str, const CommonTableExpr *node)
-{
- WRITE_NODE_TYPE("COMMONTABLEEXPR");
-
- WRITE_STRING_FIELD(ctename);
- WRITE_NODE_FIELD(aliascolnames);
- WRITE_ENUM_FIELD(ctematerialized, CTEMaterialize);
- WRITE_NODE_FIELD(ctequery);
- WRITE_NODE_FIELD(search_clause);
- WRITE_NODE_FIELD(cycle_clause);
- WRITE_LOCATION_FIELD(location);
- WRITE_BOOL_FIELD(cterecursive);
- WRITE_INT_FIELD(cterefcount);
- WRITE_NODE_FIELD(ctecolnames);
- WRITE_NODE_FIELD(ctecoltypes);
- WRITE_NODE_FIELD(ctecoltypmods);
- WRITE_NODE_FIELD(ctecolcollations);
-}
-
-static void
-_outMergeWhenClause(StringInfo str, const MergeWhenClause *node)
-{
- WRITE_NODE_TYPE("MERGEWHENCLAUSE");
-
- WRITE_BOOL_FIELD(matched);
- WRITE_ENUM_FIELD(commandType, CmdType);
- WRITE_ENUM_FIELD(override, OverridingKind);
- WRITE_NODE_FIELD(condition);
- WRITE_NODE_FIELD(targetList);
- WRITE_NODE_FIELD(values);
-}
-
-static void
-_outMergeAction(StringInfo str, const MergeAction *node)
-{
- WRITE_NODE_TYPE("MERGEACTION");
-
- WRITE_BOOL_FIELD(matched);
- WRITE_ENUM_FIELD(commandType, CmdType);
- WRITE_ENUM_FIELD(override, OverridingKind);
- WRITE_NODE_FIELD(qual);
- WRITE_NODE_FIELD(targetList);
- WRITE_NODE_FIELD(updateColnos);
-}
-
-static void
-_outSetOperationStmt(StringInfo str, const SetOperationStmt *node)
-{
- WRITE_NODE_TYPE("SETOPERATIONSTMT");
-
- WRITE_ENUM_FIELD(op, SetOperation);
- WRITE_BOOL_FIELD(all);
- WRITE_NODE_FIELD(larg);
- WRITE_NODE_FIELD(rarg);
- WRITE_NODE_FIELD(colTypes);
- WRITE_NODE_FIELD(colTypmods);
- WRITE_NODE_FIELD(colCollations);
- WRITE_NODE_FIELD(groupClauses);
-}
-#endif /* OBSOLETE */
-
static void
_outRangeTblEntry(StringInfo str, const RangeTblEntry *node)
{
@@ -3508,32 +580,6 @@ _outRangeTblEntry(StringInfo str, const RangeTblEntry *node)
WRITE_NODE_FIELD(securityQuals);
}
-#ifdef OBSOLETE
-static void
-_outRangeTblFunction(StringInfo str, const RangeTblFunction *node)
-{
- WRITE_NODE_TYPE("RANGETBLFUNCTION");
-
- WRITE_NODE_FIELD(funcexpr);
- WRITE_INT_FIELD(funccolcount);
- WRITE_NODE_FIELD(funccolnames);
- WRITE_NODE_FIELD(funccoltypes);
- WRITE_NODE_FIELD(funccoltypmods);
- WRITE_NODE_FIELD(funccolcollations);
- WRITE_BITMAPSET_FIELD(funcparams);
-}
-
-static void
-_outTableSampleClause(StringInfo str, const TableSampleClause *node)
-{
- WRITE_NODE_TYPE("TABLESAMPLECLAUSE");
-
- WRITE_OID_FIELD(tsmhandler);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(repeatable);
-}
-#endif /* OBSOLETE */
-
static void
_outA_Expr(StringInfo str, const A_Expr *node)
{
@@ -3651,40 +697,6 @@ _outBitString(StringInfo str, const BitString *node)
appendStringInfoString(str, node->bsval);
}
-#ifdef OBSOLETE
-static void
-_outColumnRef(StringInfo str, const ColumnRef *node)
-{
- WRITE_NODE_TYPE("COLUMNREF");
-
- WRITE_NODE_FIELD(fields);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outParamRef(StringInfo str, const ParamRef *node)
-{
- WRITE_NODE_TYPE("PARAMREF");
-
- WRITE_INT_FIELD(number);
- WRITE_LOCATION_FIELD(location);
-}
-
-/*
- * Node types found in raw parse trees (supported for debug purposes)
- */
-
-static void
-_outRawStmt(StringInfo str, const RawStmt *node)
-{
- WRITE_NODE_TYPE("RAWSTMT");
-
- WRITE_NODE_FIELD(stmt);
- WRITE_LOCATION_FIELD(stmt_location);
- WRITE_INT_FIELD(stmt_len);
-}
-#endif /* OBSOLETE */
-
static void
_outA_Const(StringInfo str, const A_Const *node)
{
@@ -3700,153 +712,6 @@ _outA_Const(StringInfo str, const A_Const *node)
WRITE_LOCATION_FIELD(location);
}
-#ifdef OBSOLETE
-static void
-_outA_Star(StringInfo str, const A_Star *node)
-{
- WRITE_NODE_TYPE("A_STAR");
-}
-
-static void
-_outA_Indices(StringInfo str, const A_Indices *node)
-{
- WRITE_NODE_TYPE("A_INDICES");
-
- WRITE_BOOL_FIELD(is_slice);
- WRITE_NODE_FIELD(lidx);
- WRITE_NODE_FIELD(uidx);
-}
-
-static void
-_outA_Indirection(StringInfo str, const A_Indirection *node)
-{
- WRITE_NODE_TYPE("A_INDIRECTION");
-
- WRITE_NODE_FIELD(arg);
- WRITE_NODE_FIELD(indirection);
-}
-
-static void
-_outA_ArrayExpr(StringInfo str, const A_ArrayExpr *node)
-{
- WRITE_NODE_TYPE("A_ARRAYEXPR");
-
- WRITE_NODE_FIELD(elements);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outResTarget(StringInfo str, const ResTarget *node)
-{
- WRITE_NODE_TYPE("RESTARGET");
-
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(indirection);
- WRITE_NODE_FIELD(val);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outMultiAssignRef(StringInfo str, const MultiAssignRef *node)
-{
- WRITE_NODE_TYPE("MULTIASSIGNREF");
-
- WRITE_NODE_FIELD(source);
- WRITE_INT_FIELD(colno);
- WRITE_INT_FIELD(ncolumns);
-}
-
-static void
-_outSortBy(StringInfo str, const SortBy *node)
-{
- WRITE_NODE_TYPE("SORTBY");
-
- WRITE_NODE_FIELD(node);
- WRITE_ENUM_FIELD(sortby_dir, SortByDir);
- WRITE_ENUM_FIELD(sortby_nulls, SortByNulls);
- WRITE_NODE_FIELD(useOp);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outWindowDef(StringInfo str, const WindowDef *node)
-{
- WRITE_NODE_TYPE("WINDOWDEF");
-
- WRITE_STRING_FIELD(name);
- WRITE_STRING_FIELD(refname);
- WRITE_NODE_FIELD(partitionClause);
- WRITE_NODE_FIELD(orderClause);
- WRITE_INT_FIELD(frameOptions);
- WRITE_NODE_FIELD(startOffset);
- WRITE_NODE_FIELD(endOffset);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outRangeSubselect(StringInfo str, const RangeSubselect *node)
-{
- WRITE_NODE_TYPE("RANGESUBSELECT");
-
- WRITE_BOOL_FIELD(lateral);
- WRITE_NODE_FIELD(subquery);
- WRITE_NODE_FIELD(alias);
-}
-
-static void
-_outRangeFunction(StringInfo str, const RangeFunction *node)
-{
- WRITE_NODE_TYPE("RANGEFUNCTION");
-
- WRITE_BOOL_FIELD(lateral);
- WRITE_BOOL_FIELD(ordinality);
- WRITE_BOOL_FIELD(is_rowsfrom);
- WRITE_NODE_FIELD(functions);
- WRITE_NODE_FIELD(alias);
- WRITE_NODE_FIELD(coldeflist);
-}
-
-static void
-_outRangeTableSample(StringInfo str, const RangeTableSample *node)
-{
- WRITE_NODE_TYPE("RANGETABLESAMPLE");
-
- WRITE_NODE_FIELD(relation);
- WRITE_NODE_FIELD(method);
- WRITE_NODE_FIELD(args);
- WRITE_NODE_FIELD(repeatable);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outRangeTableFunc(StringInfo str, const RangeTableFunc *node)
-{
- WRITE_NODE_TYPE("RANGETABLEFUNC");
-
- WRITE_BOOL_FIELD(lateral);
- WRITE_NODE_FIELD(docexpr);
- WRITE_NODE_FIELD(rowexpr);
- WRITE_NODE_FIELD(namespaces);
- WRITE_NODE_FIELD(columns);
- WRITE_NODE_FIELD(alias);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outRangeTableFuncCol(StringInfo str, const RangeTableFuncCol *node)
-{
- WRITE_NODE_TYPE("RANGETABLEFUNCCOL");
-
- WRITE_STRING_FIELD(colname);
- WRITE_NODE_FIELD(typeName);
- WRITE_BOOL_FIELD(for_ordinality);
- WRITE_BOOL_FIELD(is_not_null);
- WRITE_NODE_FIELD(colexpr);
- WRITE_NODE_FIELD(coldefexpr);
- WRITE_LOCATION_FIELD(location);
-}
-#endif /* OBSOLETE */
-
static void
_outConstraint(StringInfo str, const Constraint *node)
{
@@ -3968,68 +833,6 @@ _outConstraint(StringInfo str, const Constraint *node)
}
}
-#ifdef OBSOLETE
-static void
-_outForeignKeyCacheInfo(StringInfo str, const ForeignKeyCacheInfo *node)
-{
- WRITE_NODE_TYPE("FOREIGNKEYCACHEINFO");
-
- WRITE_OID_FIELD(conoid);
- WRITE_OID_FIELD(conrelid);
- WRITE_OID_FIELD(confrelid);
- WRITE_INT_FIELD(nkeys);
- WRITE_ATTRNUMBER_ARRAY(conkey, node->nkeys);
- WRITE_ATTRNUMBER_ARRAY(confkey, node->nkeys);
- WRITE_OID_ARRAY(conpfeqop, node->nkeys);
-}
-
-static void
-_outPartitionElem(StringInfo str, const PartitionElem *node)
-{
- WRITE_NODE_TYPE("PARTITIONELEM");
-
- WRITE_STRING_FIELD(name);
- WRITE_NODE_FIELD(expr);
- WRITE_NODE_FIELD(collation);
- WRITE_NODE_FIELD(opclass);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outPartitionSpec(StringInfo str, const PartitionSpec *node)
-{
- WRITE_NODE_TYPE("PARTITIONSPEC");
-
- WRITE_STRING_FIELD(strategy);
- WRITE_NODE_FIELD(partParams);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outPartitionBoundSpec(StringInfo str, const PartitionBoundSpec *node)
-{
- WRITE_NODE_TYPE("PARTITIONBOUNDSPEC");
-
- WRITE_CHAR_FIELD(strategy);
- WRITE_BOOL_FIELD(is_default);
- WRITE_INT_FIELD(modulus);
- WRITE_INT_FIELD(remainder);
- WRITE_NODE_FIELD(listdatums);
- WRITE_NODE_FIELD(lowerdatums);
- WRITE_NODE_FIELD(upperdatums);
- WRITE_LOCATION_FIELD(location);
-}
-
-static void
-_outPartitionRangeDatum(StringInfo str, const PartitionRangeDatum *node)
-{
- WRITE_NODE_TYPE("PARTITIONRANGEDATUM");
-
- WRITE_ENUM_FIELD(kind, PartitionRangeDatumKind);
- WRITE_NODE_FIELD(value);
- WRITE_LOCATION_FIELD(location);
-}
-#endif /* OBSOLETE */
/*
* outNode -
@@ -4062,713 +865,6 @@ outNode(StringInfo str, const void *obj)
switch (nodeTag(obj))
{
#include "outfuncs.switch.c"
-#ifdef OBSOLETE
- case T_PlannedStmt:
- _outPlannedStmt(str, obj);
- break;
- case T_Result:
- _outResult(str, obj);
- break;
- case T_ProjectSet:
- _outProjectSet(str, obj);
- break;
- case T_ModifyTable:
- _outModifyTable(str, obj);
- break;
- case T_Append:
- _outAppend(str, obj);
- break;
- case T_MergeAppend:
- _outMergeAppend(str, obj);
- break;
- case T_RecursiveUnion:
- _outRecursiveUnion(str, obj);
- break;
- case T_BitmapAnd:
- _outBitmapAnd(str, obj);
- break;
- case T_BitmapOr:
- _outBitmapOr(str, obj);
- break;
- case T_Gather:
- _outGather(str, obj);
- break;
- case T_GatherMerge:
- _outGatherMerge(str, obj);
- break;
- case T_Scan:
- _outScan(str, obj);
- break;
- case T_SeqScan:
- _outSeqScan(str, obj);
- break;
- case T_SampleScan:
- _outSampleScan(str, obj);
- break;
- case T_IndexScan:
- _outIndexScan(str, obj);
- break;
- case T_IndexOnlyScan:
- _outIndexOnlyScan(str, obj);
- break;
- case T_BitmapIndexScan:
- _outBitmapIndexScan(str, obj);
- break;
- case T_BitmapHeapScan:
- _outBitmapHeapScan(str, obj);
- break;
- case T_TidScan:
- _outTidScan(str, obj);
- break;
- case T_TidRangeScan:
- _outTidRangeScan(str, obj);
- break;
- case T_SubqueryScan:
- _outSubqueryScan(str, obj);
- break;
- case T_FunctionScan:
- _outFunctionScan(str, obj);
- break;
- case T_TableFuncScan:
- _outTableFuncScan(str, obj);
- break;
- case T_ValuesScan:
- _outValuesScan(str, obj);
- break;
- case T_CteScan:
- _outCteScan(str, obj);
- break;
- case T_NamedTuplestoreScan:
- _outNamedTuplestoreScan(str, obj);
- break;
- case T_WorkTableScan:
- _outWorkTableScan(str, obj);
- break;
- case T_ForeignScan:
- _outForeignScan(str, obj);
- break;
- case T_CustomScan:
- _outCustomScan(str, obj);
- break;
- case T_NestLoop:
- _outNestLoop(str, obj);
- break;
- case T_MergeJoin:
- _outMergeJoin(str, obj);
- break;
- case T_HashJoin:
- _outHashJoin(str, obj);
- break;
- case T_Agg:
- _outAgg(str, obj);
- break;
- case T_WindowAgg:
- _outWindowAgg(str, obj);
- break;
- case T_Group:
- _outGroup(str, obj);
- break;
- case T_Material:
- _outMaterial(str, obj);
- break;
- case T_Memoize:
- _outMemoize(str, obj);
- break;
- case T_Sort:
- _outSort(str, obj);
- break;
- case T_IncrementalSort:
- _outIncrementalSort(str, obj);
- break;
- case T_Unique:
- _outUnique(str, obj);
- break;
- case T_Hash:
- _outHash(str, obj);
- break;
- case T_SetOp:
- _outSetOp(str, obj);
- break;
- case T_LockRows:
- _outLockRows(str, obj);
- break;
- case T_Limit:
- _outLimit(str, obj);
- break;
- case T_NestLoopParam:
- _outNestLoopParam(str, obj);
- break;
- case T_PlanRowMark:
- _outPlanRowMark(str, obj);
- break;
- case T_PartitionPruneInfo:
- _outPartitionPruneInfo(str, obj);
- break;
- case T_PartitionedRelPruneInfo:
- _outPartitionedRelPruneInfo(str, obj);
- break;
- case T_PartitionPruneStepOp:
- _outPartitionPruneStepOp(str, obj);
- break;
- case T_PartitionPruneStepCombine:
- _outPartitionPruneStepCombine(str, obj);
- break;
- case T_PlanInvalItem:
- _outPlanInvalItem(str, obj);
- break;
- case T_Alias:
- _outAlias(str, obj);
- break;
- case T_RangeVar:
- _outRangeVar(str, obj);
- break;
- case T_TableFunc:
- _outTableFunc(str, obj);
- break;
- case T_IntoClause:
- _outIntoClause(str, obj);
- break;
- case T_Var:
- _outVar(str, obj);
- break;
- case T_Const:
- _outConst(str, obj);
- break;
- case T_Param:
- _outParam(str, obj);
- break;
- case T_Aggref:
- _outAggref(str, obj);
- break;
- case T_GroupingFunc:
- _outGroupingFunc(str, obj);
- break;
- case T_WindowFunc:
- _outWindowFunc(str, obj);
- break;
- case T_SubscriptingRef:
- _outSubscriptingRef(str, obj);
- break;
- case T_FuncExpr:
- _outFuncExpr(str, obj);
- break;
- case T_NamedArgExpr:
- _outNamedArgExpr(str, obj);
- break;
- case T_OpExpr:
- _outOpExpr(str, obj);
- break;
- case T_DistinctExpr:
- _outDistinctExpr(str, obj);
- break;
- case T_NullIfExpr:
- _outNullIfExpr(str, obj);
- break;
- case T_ScalarArrayOpExpr:
- _outScalarArrayOpExpr(str, obj);
- break;
- case T_BoolExpr:
- _outBoolExpr(str, obj);
- break;
- case T_SubLink:
- _outSubLink(str, obj);
- break;
- case T_SubPlan:
- _outSubPlan(str, obj);
- break;
- case T_AlternativeSubPlan:
- _outAlternativeSubPlan(str, obj);
- break;
- case T_FieldSelect:
- _outFieldSelect(str, obj);
- break;
- case T_FieldStore:
- _outFieldStore(str, obj);
- break;
- case T_RelabelType:
- _outRelabelType(str, obj);
- break;
- case T_CoerceViaIO:
- _outCoerceViaIO(str, obj);
- break;
- case T_ArrayCoerceExpr:
- _outArrayCoerceExpr(str, obj);
- break;
- case T_ConvertRowtypeExpr:
- _outConvertRowtypeExpr(str, obj);
- break;
- case T_CollateExpr:
- _outCollateExpr(str, obj);
- break;
- case T_CaseExpr:
- _outCaseExpr(str, obj);
- break;
- case T_CaseWhen:
- _outCaseWhen(str, obj);
- break;
- case T_CaseTestExpr:
- _outCaseTestExpr(str, obj);
- break;
- case T_ArrayExpr:
- _outArrayExpr(str, obj);
- break;
- case T_RowExpr:
- _outRowExpr(str, obj);
- break;
- case T_RowCompareExpr:
- _outRowCompareExpr(str, obj);
- break;
- case T_CoalesceExpr:
- _outCoalesceExpr(str, obj);
- break;
- case T_MinMaxExpr:
- _outMinMaxExpr(str, obj);
- break;
- case T_SQLValueFunction:
- _outSQLValueFunction(str, obj);
- break;
- case T_XmlExpr:
- _outXmlExpr(str, obj);
- break;
- case T_NullTest:
- _outNullTest(str, obj);
- break;
- case T_BooleanTest:
- _outBooleanTest(str, obj);
- break;
- case T_CoerceToDomain:
- _outCoerceToDomain(str, obj);
- break;
- case T_CoerceToDomainValue:
- _outCoerceToDomainValue(str, obj);
- break;
- case T_SetToDefault:
- _outSetToDefault(str, obj);
- break;
- case T_CurrentOfExpr:
- _outCurrentOfExpr(str, obj);
- break;
- case T_NextValueExpr:
- _outNextValueExpr(str, obj);
- break;
- case T_InferenceElem:
- _outInferenceElem(str, obj);
- break;
- case T_TargetEntry:
- _outTargetEntry(str, obj);
- break;
- case T_RangeTblRef:
- _outRangeTblRef(str, obj);
- break;
- case T_JoinExpr:
- _outJoinExpr(str, obj);
- break;
- case T_FromExpr:
- _outFromExpr(str, obj);
- break;
- case T_OnConflictExpr:
- _outOnConflictExpr(str, obj);
- break;
- case T_Path:
- _outPath(str, obj);
- break;
- case T_IndexPath:
- _outIndexPath(str, obj);
- break;
- case T_BitmapHeapPath:
- _outBitmapHeapPath(str, obj);
- break;
- case T_BitmapAndPath:
- _outBitmapAndPath(str, obj);
- break;
- case T_BitmapOrPath:
- _outBitmapOrPath(str, obj);
- break;
- case T_TidPath:
- _outTidPath(str, obj);
- break;
- case T_TidRangePath:
- _outTidRangePath(str, obj);
- break;
- case T_SubqueryScanPath:
- _outSubqueryScanPath(str, obj);
- break;
- case T_ForeignPath:
- _outForeignPath(str, obj);
- break;
- case T_CustomPath:
- _outCustomPath(str, obj);
- break;
- case T_AppendPath:
- _outAppendPath(str, obj);
- break;
- case T_MergeAppendPath:
- _outMergeAppendPath(str, obj);
- break;
- case T_GroupResultPath:
- _outGroupResultPath(str, obj);
- break;
- case T_MaterialPath:
- _outMaterialPath(str, obj);
- break;
- case T_MemoizePath:
- _outMemoizePath(str, obj);
- break;
- case T_UniquePath:
- _outUniquePath(str, obj);
- break;
- case T_GatherPath:
- _outGatherPath(str, obj);
- break;
- case T_ProjectionPath:
- _outProjectionPath(str, obj);
- break;
- case T_ProjectSetPath:
- _outProjectSetPath(str, obj);
- break;
- case T_SortPath:
- _outSortPath(str, obj);
- break;
- case T_IncrementalSortPath:
- _outIncrementalSortPath(str, obj);
- break;
- case T_GroupPath:
- _outGroupPath(str, obj);
- break;
- case T_UpperUniquePath:
- _outUpperUniquePath(str, obj);
- break;
- case T_AggPath:
- _outAggPath(str, obj);
- break;
- case T_GroupingSetsPath:
- _outGroupingSetsPath(str, obj);
- break;
- case T_MinMaxAggPath:
- _outMinMaxAggPath(str, obj);
- break;
- case T_WindowAggPath:
- _outWindowAggPath(str, obj);
- break;
- case T_SetOpPath:
- _outSetOpPath(str, obj);
- break;
- case T_RecursiveUnionPath:
- _outRecursiveUnionPath(str, obj);
- break;
- case T_LockRowsPath:
- _outLockRowsPath(str, obj);
- break;
- case T_ModifyTablePath:
- _outModifyTablePath(str, obj);
- break;
- case T_LimitPath:
- _outLimitPath(str, obj);
- break;
- case T_GatherMergePath:
- _outGatherMergePath(str, obj);
- break;
- case T_NestPath:
- _outNestPath(str, obj);
- break;
- case T_MergePath:
- _outMergePath(str, obj);
- break;
- case T_HashPath:
- _outHashPath(str, obj);
- break;
- case T_PlannerGlobal:
- _outPlannerGlobal(str, obj);
- break;
- case T_PlannerInfo:
- _outPlannerInfo(str, obj);
- break;
- case T_RelOptInfo:
- _outRelOptInfo(str, obj);
- break;
- case T_IndexOptInfo:
- _outIndexOptInfo(str, obj);
- break;
- case T_ForeignKeyOptInfo:
- _outForeignKeyOptInfo(str, obj);
- break;
- case T_EquivalenceClass:
- _outEquivalenceClass(str, obj);
- break;
- case T_EquivalenceMember:
- _outEquivalenceMember(str, obj);
- break;
- case T_PathKey:
- _outPathKey(str, obj);
- break;
- case T_PathTarget:
- _outPathTarget(str, obj);
- break;
- case T_ParamPathInfo:
- _outParamPathInfo(str, obj);
- break;
- case T_RestrictInfo:
- _outRestrictInfo(str, obj);
- break;
- case T_IndexClause:
- _outIndexClause(str, obj);
- break;
- case T_PlaceHolderVar:
- _outPlaceHolderVar(str, obj);
- break;
- case T_SpecialJoinInfo:
- _outSpecialJoinInfo(str, obj);
- break;
- case T_AppendRelInfo:
- _outAppendRelInfo(str, obj);
- break;
- case T_RowIdentityVarInfo:
- _outRowIdentityVarInfo(str, obj);
- break;
- case T_PlaceHolderInfo:
- _outPlaceHolderInfo(str, obj);
- break;
- case T_MinMaxAggInfo:
- _outMinMaxAggInfo(str, obj);
- break;
- case T_PlannerParamItem:
- _outPlannerParamItem(str, obj);
- break;
- case T_RollupData:
- _outRollupData(str, obj);
- break;
- case T_GroupingSetData:
- _outGroupingSetData(str, obj);
- break;
- case T_StatisticExtInfo:
- _outStatisticExtInfo(str, obj);
- break;
- case T_ExtensibleNode:
- _outExtensibleNode(str, obj);
- break;
- case T_CreateStmt:
- _outCreateStmt(str, obj);
- break;
- case T_CreateForeignTableStmt:
- _outCreateForeignTableStmt(str, obj);
- break;
- case T_ImportForeignSchemaStmt:
- _outImportForeignSchemaStmt(str, obj);
- break;
- case T_IndexStmt:
- _outIndexStmt(str, obj);
- break;
- case T_CreateStatsStmt:
- _outCreateStatsStmt(str, obj);
- break;
- case T_AlterStatsStmt:
- _outAlterStatsStmt(str, obj);
- break;
- case T_NotifyStmt:
- _outNotifyStmt(str, obj);
- break;
- case T_DeclareCursorStmt:
- _outDeclareCursorStmt(str, obj);
- break;
- case T_SelectStmt:
- _outSelectStmt(str, obj);
- break;
- case T_ReturnStmt:
- _outReturnStmt(str, obj);
- break;
- case T_PLAssignStmt:
- _outPLAssignStmt(str, obj);
- break;
- case T_ColumnDef:
- _outColumnDef(str, obj);
- break;
- case T_TypeName:
- _outTypeName(str, obj);
- break;
- case T_TypeCast:
- _outTypeCast(str, obj);
- break;
- case T_CollateClause:
- _outCollateClause(str, obj);
- break;
- case T_IndexElem:
- _outIndexElem(str, obj);
- break;
- case T_StatsElem:
- _outStatsElem(str, obj);
- break;
- case T_Query:
- _outQuery(str, obj);
- break;
- case T_WithCheckOption:
- _outWithCheckOption(str, obj);
- break;
- case T_SortGroupClause:
- _outSortGroupClause(str, obj);
- break;
- case T_GroupingSet:
- _outGroupingSet(str, obj);
- break;
- case T_WindowClause:
- _outWindowClause(str, obj);
- break;
- case T_RowMarkClause:
- _outRowMarkClause(str, obj);
- break;
- case T_WithClause:
- _outWithClause(str, obj);
- break;
- case T_CTESearchClause:
- _outCTESearchClause(str, obj);
- break;
- case T_CTECycleClause:
- _outCTECycleClause(str, obj);
- break;
- case T_CommonTableExpr:
- _outCommonTableExpr(str, obj);
- break;
- case T_MergeWhenClause:
- _outMergeWhenClause(str, obj);
- break;
- case T_MergeAction:
- _outMergeAction(str, obj);
- break;
- case T_SetOperationStmt:
- _outSetOperationStmt(str, obj);
- break;
- case T_RangeTblEntry:
- _outRangeTblEntry(str, obj);
- break;
- case T_RangeTblFunction:
- _outRangeTblFunction(str, obj);
- break;
- case T_TableSampleClause:
- _outTableSampleClause(str, obj);
- break;
- case T_A_Expr:
- _outA_Expr(str, obj);
- break;
- case T_ColumnRef:
- _outColumnRef(str, obj);
- break;
- case T_ParamRef:
- _outParamRef(str, obj);
- break;
- case T_RawStmt:
- _outRawStmt(str, obj);
- break;
- case T_A_Const:
- _outA_Const(str, obj);
- break;
- case T_A_Star:
- _outA_Star(str, obj);
- break;
- case T_A_Indices:
- _outA_Indices(str, obj);
- break;
- case T_A_Indirection:
- _outA_Indirection(str, obj);
- break;
- case T_A_ArrayExpr:
- _outA_ArrayExpr(str, obj);
- break;
- case T_ResTarget:
- _outResTarget(str, obj);
- break;
- case T_MultiAssignRef:
- _outMultiAssignRef(str, obj);
- break;
- case T_SortBy:
- _outSortBy(str, obj);
- break;
- case T_WindowDef:
- _outWindowDef(str, obj);
- break;
- case T_RangeSubselect:
- _outRangeSubselect(str, obj);
- break;
- case T_RangeFunction:
- _outRangeFunction(str, obj);
- break;
- case T_RangeTableSample:
- _outRangeTableSample(str, obj);
- break;
- case T_RangeTableFunc:
- _outRangeTableFunc(str, obj);
- break;
- case T_RangeTableFuncCol:
- _outRangeTableFuncCol(str, obj);
- break;
- case T_Constraint:
- _outConstraint(str, obj);
- break;
- case T_FuncCall:
- _outFuncCall(str, obj);
- break;
- case T_DefElem:
- _outDefElem(str, obj);
- break;
- case T_TableLikeClause:
- _outTableLikeClause(str, obj);
- break;
- case T_LockingClause:
- _outLockingClause(str, obj);
- break;
- case T_XmlSerialize:
- _outXmlSerialize(str, obj);
- break;
- case T_ForeignKeyCacheInfo:
- _outForeignKeyCacheInfo(str, obj);
- break;
- case T_TriggerTransition:
- _outTriggerTransition(str, obj);
- break;
- case T_PartitionElem:
- _outPartitionElem(str, obj);
- break;
- case T_PartitionSpec:
- _outPartitionSpec(str, obj);
- break;
- case T_PartitionBoundSpec:
- _outPartitionBoundSpec(str, obj);
- break;
- case T_PartitionRangeDatum:
- _outPartitionRangeDatum(str, obj);
- break;
- case T_JsonFormat:
- _outJsonFormat(str, obj);
- break;
- case T_JsonReturning:
- _outJsonReturning(str, obj);
- break;
- case T_JsonValueExpr:
- _outJsonValueExpr(str, obj);
- break;
- case T_JsonConstructorExpr:
- _outJsonConstructorExpr(str, obj);
- break;
- case T_JsonIsPredicate:
- _outJsonIsPredicate(str, obj);
- break;
- case T_JsonBehavior:
- _outJsonBehavior(str, obj);
- break;
- case T_JsonExpr:
- _outJsonExpr(str, obj);
- break;
- case T_JsonCoercion:
- _outJsonCoercion(str, obj);
- break;
- case T_JsonItemCoercions:
- _outJsonItemCoercions(str, obj);
- break;
- case T_JsonTableParent:
- _outJsonTableParent(str, obj);
- break;
- case T_JsonTableSibling:
- _outJsonTableSibling(str, obj);
- break;
-#endif /* OBSOLETE */
default: