PostgreSQL Source Code  git master
outfuncs.c File Reference
#include "postgres.h"
#include <ctype.h>
#include "lib/stringinfo.h"
#include "nodes/extensible.h"
#include "nodes/plannodes.h"
#include "nodes/relation.h"
#include "utils/datum.h"
#include "utils/rel.h"
Include dependency graph for outfuncs.c:

Go to the source code of this file.

Macros

#define WRITE_NODE_TYPE(nodelabel)   appendStringInfoString(str, nodelabel)
 
#define WRITE_INT_FIELD(fldname)   appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname)
 
#define WRITE_UINT_FIELD(fldname)   appendStringInfo(str, " :" CppAsString(fldname) " %u", node->fldname)
 
#define WRITE_UINT64_FIELD(fldname)
 
#define WRITE_OID_FIELD(fldname)   appendStringInfo(str, " :" CppAsString(fldname) " %u", node->fldname)
 
#define WRITE_LONG_FIELD(fldname)   appendStringInfo(str, " :" CppAsString(fldname) " %ld", node->fldname)
 
#define WRITE_CHAR_FIELD(fldname)
 
#define WRITE_ENUM_FIELD(fldname, enumtype)
 
#define WRITE_FLOAT_FIELD(fldname, format)   appendStringInfo(str, " :" CppAsString(fldname) " " format, node->fldname)
 
#define WRITE_BOOL_FIELD(fldname)
 
#define WRITE_STRING_FIELD(fldname)
 
#define WRITE_LOCATION_FIELD(fldname)   appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname)
 
#define WRITE_NODE_FIELD(fldname)
 
#define WRITE_BITMAPSET_FIELD(fldname)
 
#define booltostr(x)   ((x) ? "true" : "false")
 

Functions

static void outChar (StringInfo str, char c)
 
void outToken (StringInfo str, const char *s)
 
static void _outList (StringInfo str, const List *node)
 
void outBitmapset (StringInfo str, const Bitmapset *bms)
 
void outDatum (StringInfo str, Datum value, int typlen, bool typbyval)
 
static void _outPlannedStmt (StringInfo str, const PlannedStmt *node)
 
static void _outPlanInfo (StringInfo str, const Plan *node)
 
static void _outScanInfo (StringInfo str, const Scan *node)
 
static void _outJoinPlanInfo (StringInfo str, const Join *node)
 
static void _outPlan (StringInfo str, const Plan *node)
 
static void _outResult (StringInfo str, const Result *node)
 
static void _outProjectSet (StringInfo str, const ProjectSet *node)
 
static void _outModifyTable (StringInfo str, const ModifyTable *node)
 
static void _outAppend (StringInfo str, const Append *node)
 
static void _outMergeAppend (StringInfo str, const MergeAppend *node)
 
static void _outRecursiveUnion (StringInfo str, const RecursiveUnion *node)
 
static void _outBitmapAnd (StringInfo str, const BitmapAnd *node)
 
static void _outBitmapOr (StringInfo str, const BitmapOr *node)
 
static void _outGather (StringInfo str, const Gather *node)
 
static void _outGatherMerge (StringInfo str, const GatherMerge *node)
 
static void _outScan (StringInfo str, const Scan *node)
 
static void _outSeqScan (StringInfo str, const SeqScan *node)
 
static void _outSampleScan (StringInfo str, const SampleScan *node)
 
static void _outIndexScan (StringInfo str, const IndexScan *node)
 
static void _outIndexOnlyScan (StringInfo str, const IndexOnlyScan *node)
 
static void _outBitmapIndexScan (StringInfo str, const BitmapIndexScan *node)
 
static void _outBitmapHeapScan (StringInfo str, const BitmapHeapScan *node)
 
static void _outTidScan (StringInfo str, const TidScan *node)
 
static void _outSubqueryScan (StringInfo str, const SubqueryScan *node)
 
static void _outFunctionScan (StringInfo str, const FunctionScan *node)
 
static void _outTableFuncScan (StringInfo str, const TableFuncScan *node)
 
static void _outValuesScan (StringInfo str, const ValuesScan *node)
 
static void _outCteScan (StringInfo str, const CteScan *node)
 
static void _outNamedTuplestoreScan (StringInfo str, const NamedTuplestoreScan *node)
 
static void _outWorkTableScan (StringInfo str, const WorkTableScan *node)
 
static void _outForeignScan (StringInfo str, const ForeignScan *node)
 
static void _outCustomScan (StringInfo str, const CustomScan *node)
 
static void _outJoin (StringInfo str, const Join *node)
 
static void _outNestLoop (StringInfo str, const NestLoop *node)
 
static void _outMergeJoin (StringInfo str, const MergeJoin *node)
 
static void _outHashJoin (StringInfo str, const HashJoin *node)
 
static void _outAgg (StringInfo str, const Agg *node)
 
static void _outWindowAgg (StringInfo str, const WindowAgg *node)
 
static void _outGroup (StringInfo str, const Group *node)
 
static void _outMaterial (StringInfo str, const Material *node)
 
static void _outSort (StringInfo str, const Sort *node)
 
static void _outUnique (StringInfo str, const Unique *node)
 
static void _outHash (StringInfo str, const Hash *node)
 
static void _outSetOp (StringInfo str, const SetOp *node)
 
static void _outLockRows (StringInfo str, const LockRows *node)
 
static void _outLimit (StringInfo str, const Limit *node)
 
static void _outNestLoopParam (StringInfo str, const NestLoopParam *node)
 
static void _outPlanRowMark (StringInfo str, const PlanRowMark *node)
 
static void _outPlanInvalItem (StringInfo str, const PlanInvalItem *node)
 
static void _outAlias (StringInfo str, const Alias *node)
 
static void _outRangeVar (StringInfo str, const RangeVar *node)
 
static void _outTableFunc (StringInfo str, const TableFunc *node)
 
static void _outIntoClause (StringInfo str, const IntoClause *node)
 
static void _outVar (StringInfo str, const Var *node)
 
static void _outConst (StringInfo str, const Const *node)
 
static void _outParam (StringInfo str, const Param *node)
 
static void _outAggref (StringInfo str, const Aggref *node)
 
static void _outGroupingFunc (StringInfo str, const GroupingFunc *node)
 
static void _outWindowFunc (StringInfo str, const WindowFunc *node)
 
static void _outArrayRef (StringInfo str, const ArrayRef *node)
 
static void _outFuncExpr (StringInfo str, const FuncExpr *node)
 
static void _outNamedArgExpr (StringInfo str, const NamedArgExpr *node)
 
static void _outOpExpr (StringInfo str, const OpExpr *node)
 
static void _outDistinctExpr (StringInfo str, const DistinctExpr *node)
 
static void _outNullIfExpr (StringInfo str, const NullIfExpr *node)
 
static void _outScalarArrayOpExpr (StringInfo str, const ScalarArrayOpExpr *node)
 
static void _outBoolExpr (StringInfo str, const BoolExpr *node)
 
static void _outSubLink (StringInfo str, const SubLink *node)
 
static void _outSubPlan (StringInfo str, const SubPlan *node)
 
static void _outAlternativeSubPlan (StringInfo str, const AlternativeSubPlan *node)
 
static void _outFieldSelect (StringInfo str, const FieldSelect *node)
 
static void _outFieldStore (StringInfo str, const FieldStore *node)
 
static void _outRelabelType (StringInfo str, const RelabelType *node)
 
static void _outCoerceViaIO (StringInfo str, const CoerceViaIO *node)
 
static void _outArrayCoerceExpr (StringInfo str, const ArrayCoerceExpr *node)
 
static void _outConvertRowtypeExpr (StringInfo str, const ConvertRowtypeExpr *node)
 
static void _outCollateExpr (StringInfo str, const CollateExpr *node)
 
static void _outCaseExpr (StringInfo str, const CaseExpr *node)
 
static void _outCaseWhen (StringInfo str, const CaseWhen *node)
 
static void _outCaseTestExpr (StringInfo str, const CaseTestExpr *node)
 
static void _outArrayExpr (StringInfo str, const ArrayExpr *node)
 
static void _outRowExpr (StringInfo str, const RowExpr *node)
 
static void _outRowCompareExpr (StringInfo str, const RowCompareExpr *node)
 
static void _outCoalesceExpr (StringInfo str, const CoalesceExpr *node)
 
static void _outMinMaxExpr (StringInfo str, const MinMaxExpr *node)
 
static void _outSQLValueFunction (StringInfo str, const SQLValueFunction *node)
 
static void _outXmlExpr (StringInfo str, const XmlExpr *node)
 
static void _outNullTest (StringInfo str, const NullTest *node)
 
static void _outBooleanTest (StringInfo str, const BooleanTest *node)
 
static void _outCoerceToDomain (StringInfo str, const CoerceToDomain *node)
 
static void _outCoerceToDomainValue (StringInfo str, const CoerceToDomainValue *node)
 
static void _outSetToDefault (StringInfo str, const SetToDefault *node)
 
static void _outCurrentOfExpr (StringInfo str, const CurrentOfExpr *node)
 
static void _outNextValueExpr (StringInfo str, const NextValueExpr *node)
 
static void _outInferenceElem (StringInfo str, const InferenceElem *node)
 
static void _outTargetEntry (StringInfo str, const TargetEntry *node)
 
static void _outRangeTblRef (StringInfo str, const RangeTblRef *node)
 
static void _outJoinExpr (StringInfo str, const JoinExpr *node)
 
static void _outFromExpr (StringInfo str, const FromExpr *node)
 
static void _outOnConflictExpr (StringInfo str, const OnConflictExpr *node)
 
static void _outPathInfo (StringInfo str, const Path *node)
 
static void _outJoinPathInfo (StringInfo str, const JoinPath *node)
 
static void _outPath (StringInfo str, const Path *node)
 
static void _outIndexPath (StringInfo str, const IndexPath *node)
 
static void _outBitmapHeapPath (StringInfo str, const BitmapHeapPath *node)
 
static void _outBitmapAndPath (StringInfo str, const BitmapAndPath *node)
 
static void _outBitmapOrPath (StringInfo str, const BitmapOrPath *node)
 
static void _outTidPath (StringInfo str, const TidPath *node)
 
static void _outSubqueryScanPath (StringInfo str, const SubqueryScanPath *node)
 
static void _outForeignPath (StringInfo str, const ForeignPath *node)
 
static void _outCustomPath (StringInfo str, const CustomPath *node)
 
static void _outAppendPath (StringInfo str, const AppendPath *node)
 
static void _outMergeAppendPath (StringInfo str, const MergeAppendPath *node)
 
static void _outResultPath (StringInfo str, const ResultPath *node)
 
static void _outMaterialPath (StringInfo str, const MaterialPath *node)
 
static void _outUniquePath (StringInfo str, const UniquePath *node)
 
static void _outGatherPath (StringInfo str, const GatherPath *node)
 
static void _outProjectionPath (StringInfo str, const ProjectionPath *node)
 
static void _outProjectSetPath (StringInfo str, const ProjectSetPath *node)
 
static void _outSortPath (StringInfo str, const SortPath *node)
 
static void _outGroupPath (StringInfo str, const GroupPath *node)
 
static void _outUpperUniquePath (StringInfo str, const UpperUniquePath *node)
 
static void _outAggPath (StringInfo str, const AggPath *node)
 
static void _outRollupData (StringInfo str, const RollupData *node)
 
static void _outGroupingSetData (StringInfo str, const GroupingSetData *node)
 
static void _outGroupingSetsPath (StringInfo str, const GroupingSetsPath *node)
 
static void _outMinMaxAggPath (StringInfo str, const MinMaxAggPath *node)
 
static void _outWindowAggPath (StringInfo str, const WindowAggPath *node)
 
static void _outSetOpPath (StringInfo str, const SetOpPath *node)
 
static void _outRecursiveUnionPath (StringInfo str, const RecursiveUnionPath *node)
 
static void _outLockRowsPath (StringInfo str, const LockRowsPath *node)
 
static void _outModifyTablePath (StringInfo str, const ModifyTablePath *node)
 
static void _outLimitPath (StringInfo str, const LimitPath *node)
 
static void _outGatherMergePath (StringInfo str, const GatherMergePath *node)
 
static void _outNestPath (StringInfo str, const NestPath *node)
 
static void _outMergePath (StringInfo str, const MergePath *node)
 
static void _outHashPath (StringInfo str, const HashPath *node)
 
static void _outPlannerGlobal (StringInfo str, const PlannerGlobal *node)
 
static void _outPlannerInfo (StringInfo str, const PlannerInfo *node)
 
static void _outRelOptInfo (StringInfo str, const RelOptInfo *node)
 
static void _outIndexOptInfo (StringInfo str, const IndexOptInfo *node)
 
static void _outForeignKeyOptInfo (StringInfo str, const ForeignKeyOptInfo *node)
 
static void _outStatisticExtInfo (StringInfo str, const StatisticExtInfo *node)
 
static void _outEquivalenceClass (StringInfo str, const EquivalenceClass *node)
 
static void _outEquivalenceMember (StringInfo str, const EquivalenceMember *node)
 
static void _outPathKey (StringInfo str, const PathKey *node)
 
static void _outPathTarget (StringInfo str, const PathTarget *node)
 
static void _outParamPathInfo (StringInfo str, const ParamPathInfo *node)
 
static void _outRestrictInfo (StringInfo str, const RestrictInfo *node)
 
static void _outPlaceHolderVar (StringInfo str, const PlaceHolderVar *node)
 
static void _outSpecialJoinInfo (StringInfo str, const SpecialJoinInfo *node)
 
static void _outAppendRelInfo (StringInfo str, const AppendRelInfo *node)
 
static void _outPartitionedChildRelInfo (StringInfo str, const PartitionedChildRelInfo *node)
 
static void _outPlaceHolderInfo (StringInfo str, const PlaceHolderInfo *node)
 
static void _outMinMaxAggInfo (StringInfo str, const MinMaxAggInfo *node)
 
static void _outPlannerParamItem (StringInfo str, const PlannerParamItem *node)
 
static void _outExtensibleNode (StringInfo str, const ExtensibleNode *node)
 
static void _outCreateStmtInfo (StringInfo str, const CreateStmt *node)
 
static void _outCreateStmt (StringInfo str, const CreateStmt *node)
 
static void _outCreateForeignTableStmt (StringInfo str, const CreateForeignTableStmt *node)
 
static void _outImportForeignSchemaStmt (StringInfo str, const ImportForeignSchemaStmt *node)
 
static void _outIndexStmt (StringInfo str, const IndexStmt *node)
 
static void _outCreateStatsStmt (StringInfo str, const CreateStatsStmt *node)
 
static void _outNotifyStmt (StringInfo str, const NotifyStmt *node)
 
static void _outDeclareCursorStmt (StringInfo str, const DeclareCursorStmt *node)
 
static void _outSelectStmt (StringInfo str, const SelectStmt *node)
 
static void _outFuncCall (StringInfo str, const FuncCall *node)
 
static void _outDefElem (StringInfo str, const DefElem *node)
 
static void _outTableLikeClause (StringInfo str, const TableLikeClause *node)
 
static void _outLockingClause (StringInfo str, const LockingClause *node)
 
static void _outXmlSerialize (StringInfo str, const XmlSerialize *node)
 
static void _outTriggerTransition (StringInfo str, const TriggerTransition *node)
 
static void _outColumnDef (StringInfo str, const ColumnDef *node)
 
static void _outTypeName (StringInfo str, const TypeName *node)
 
static void _outTypeCast (StringInfo str, const TypeCast *node)
 
static void _outCollateClause (StringInfo str, const CollateClause *node)
 
static void _outIndexElem (StringInfo str, const IndexElem *node)
 
static void _outQuery (StringInfo str, const Query *node)
 
static void _outWithCheckOption (StringInfo str, const WithCheckOption *node)
 
static void _outSortGroupClause (StringInfo str, const SortGroupClause *node)
 
static void _outGroupingSet (StringInfo str, const GroupingSet *node)
 
static void _outWindowClause (StringInfo str, const WindowClause *node)
 
static void _outRowMarkClause (StringInfo str, const RowMarkClause *node)
 
static void _outWithClause (StringInfo str, const WithClause *node)
 
static void _outCommonTableExpr (StringInfo str, const CommonTableExpr *node)
 
static void _outSetOperationStmt (StringInfo str, const SetOperationStmt *node)
 
static void _outRangeTblEntry (StringInfo str, const RangeTblEntry *node)
 
static void _outRangeTblFunction (StringInfo str, const RangeTblFunction *node)
 
static void _outTableSampleClause (StringInfo str, const TableSampleClause *node)
 
static void _outAExpr (StringInfo str, const A_Expr *node)
 
static void _outValue (StringInfo str, const Value *value)
 
static void _outColumnRef (StringInfo str, const ColumnRef *node)
 
static void _outParamRef (StringInfo str, const ParamRef *node)
 
static void _outAConst (StringInfo str, const A_Const *node)
 
static void _outA_Star (StringInfo str, const A_Star *node)
 
static void _outA_Indices (StringInfo str, const A_Indices *node)
 
static void _outA_Indirection (StringInfo str, const A_Indirection *node)
 
static void _outA_ArrayExpr (StringInfo str, const A_ArrayExpr *node)
 
static void _outResTarget (StringInfo str, const ResTarget *node)
 
static void _outMultiAssignRef (StringInfo str, const MultiAssignRef *node)
 
static void _outSortBy (StringInfo str, const SortBy *node)
 
static void _outWindowDef (StringInfo str, const WindowDef *node)
 
static void _outRangeSubselect (StringInfo str, const RangeSubselect *node)
 
static void _outRangeFunction (StringInfo str, const RangeFunction *node)
 
static void _outRangeTableSample (StringInfo str, const RangeTableSample *node)
 
static void _outRangeTableFunc (StringInfo str, const RangeTableFunc *node)
 
static void _outRangeTableFuncCol (StringInfo str, const RangeTableFuncCol *node)
 
static void _outConstraint (StringInfo str, const Constraint *node)
 
static void _outForeignKeyCacheInfo (StringInfo str, const ForeignKeyCacheInfo *node)
 
static void _outPartitionElem (StringInfo str, const PartitionElem *node)
 
static void _outPartitionSpec (StringInfo str, const PartitionSpec *node)
 
static void _outPartitionBoundSpec (StringInfo str, const PartitionBoundSpec *node)
 
static void _outPartitionRangeDatum (StringInfo str, const PartitionRangeDatum *node)
 
void outNode (StringInfo str, const void *obj)
 
char * nodeToString (const void *obj)
 
char * bmsToString (const Bitmapset *bms)
 

Macro Definition Documentation

◆ booltostr

#define booltostr (   x)    ((x) ? "true" : "false")

Definition at line 109 of file outfuncs.c.

Referenced by _outGatherMerge(), _outMergeAppend(), _outMergeJoin(), and _outSort().

◆ WRITE_BITMAPSET_FIELD

◆ WRITE_BOOL_FIELD

#define WRITE_BOOL_FIELD (   fldname)
Value:
appendStringInfo(str, " :" CppAsString(fldname) " %s", \
booltostr(node->fldname))
#define booltostr(x)
Definition: outfuncs.c:109
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
#define CppAsString(identifier)
Definition: c.h:223

Definition at line 85 of file outfuncs.c.

Referenced by _outA_Indices(), _outAggref(), _outArrayExpr(), _outBitmapIndexScan(), _outBitmapOr(), _outColumnDef(), _outCommonTableExpr(), _outConst(), _outConstraint(), _outCreateStatsStmt(), _outCreateStmtInfo(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outForeignScan(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outGather(), _outGatherPath(), _outHash(), _outIndexOptInfo(), _outIndexStmt(), _outIntoClause(), _outJoinExpr(), _outJoinPathInfo(), _outJoinPlanInfo(), _outMergeJoin(), _outMergePath(), _outModifyTable(), _outModifyTablePath(), _outNullIfExpr(), _outNullTest(), _outOpExpr(), _outPartitionBoundSpec(), _outPartitionedChildRelInfo(), _outPathInfo(), _outPathKey(), _outPlanInfo(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlanRowMark(), _outProjectionPath(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTableFunc(), _outRangeTableFuncCol(), _outRangeTblEntry(), _outRangeVar(), _outRelOptInfo(), _outRestrictInfo(), _outRollupData(), _outRowMarkClause(), _outScalarArrayOpExpr(), _outSelectStmt(), _outSetOperationStmt(), _outSortGroupClause(), _outSpecialJoinInfo(), _outSubPlan(), _outTargetEntry(), _outTriggerTransition(), _outTypeName(), _outWindowAgg(), _outWindowClause(), _outWindowFunc(), _outWithCheckOption(), and _outWithClause().

◆ WRITE_CHAR_FIELD

#define WRITE_CHAR_FIELD (   fldname)
Value:
(appendStringInfo(str, " :" CppAsString(fldname) " "), \
outChar(str, node->fldname))
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
#define CppAsString(identifier)
Definition: c.h:223

Definition at line 71 of file outfuncs.c.

Referenced by _outAggref(), _outColumnDef(), _outConstraint(), _outPartitionBoundSpec(), _outPlannerGlobal(), _outRangeTblEntry(), _outRangeVar(), and _outStatisticExtInfo().

◆ WRITE_ENUM_FIELD

◆ WRITE_FLOAT_FIELD

◆ WRITE_INT_FIELD

#define WRITE_INT_FIELD (   fldname)    appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname)

◆ WRITE_LOCATION_FIELD

◆ WRITE_LONG_FIELD

#define WRITE_LONG_FIELD (   fldname)    appendStringInfo(str, " :" CppAsString(fldname) " %ld", node->fldname)

Definition at line 67 of file outfuncs.c.

Referenced by _outAgg(), _outRecursiveUnion(), and _outSetOp().

◆ WRITE_NODE_FIELD

#define WRITE_NODE_FIELD (   fldname)
Value:
(appendStringInfoString(str, " :" CppAsString(fldname) " "), \
outNode(str, node->fldname))
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define CppAsString(identifier)
Definition: c.h:223

Definition at line 99 of file outfuncs.c.

Referenced by _outA_ArrayExpr(), _outA_Indices(), _outA_Indirection(), _outAExpr(), _outAgg(), _outAggPath(), _outAggref(), _outAlias(), _outAlternativeSubPlan(), _outAppend(), _outAppendPath(), _outAppendRelInfo(), _outArrayCoerceExpr(), _outArrayExpr(), _outArrayRef(), _outBitmapAnd(), _outBitmapAndPath(), _outBitmapHeapPath(), _outBitmapHeapScan(), _outBitmapIndexScan(), _outBitmapOr(), _outBitmapOrPath(), _outBooleanTest(), _outBoolExpr(), _outCaseExpr(), _outCaseWhen(), _outCoalesceExpr(), _outCoerceToDomain(), _outCoerceViaIO(), _outCollateClause(), _outCollateExpr(), _outColumnDef(), _outColumnRef(), _outCommonTableExpr(), _outConstraint(), _outConvertRowtypeExpr(), _outCreateForeignTableStmt(), _outCreateStatsStmt(), _outCreateStmtInfo(), _outCustomPath(), _outCustomScan(), _outDeclareCursorStmt(), _outDefElem(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outFieldSelect(), _outFieldStore(), _outForeignPath(), _outForeignScan(), _outFromExpr(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outGatherMergePath(), _outGatherPath(), _outGroupingFunc(), _outGroupingSet(), _outGroupingSetData(), _outGroupingSetsPath(), _outGroupPath(), _outHashJoin(), _outHashPath(), _outImportForeignSchemaStmt(), _outIndexElem(), _outIndexOnlyScan(), _outIndexOptInfo(), _outIndexPath(), _outIndexScan(), _outIndexStmt(), _outInferenceElem(), _outIntoClause(), _outJoinExpr(), _outJoinPathInfo(), _outJoinPlanInfo(), _outLimit(), _outLimitPath(), _outLockingClause(), _outLockRows(), _outLockRowsPath(), _outMaterialPath(), _outMergeAppend(), _outMergeAppendPath(), _outMergeJoin(), _outMergePath(), _outMinMaxAggInfo(), _outMinMaxAggPath(), _outMinMaxExpr(), _outModifyTable(), _outModifyTablePath(), _outMultiAssignRef(), _outNamedArgExpr(), _outNestLoop(), _outNestLoopParam(), _outNullIfExpr(), _outNullTest(), _outOnConflictExpr(), _outOpExpr(), _outParamPathInfo(), _outPartitionBoundSpec(), _outPartitionedChildRelInfo(), _outPartitionElem(), _outPartitionRangeDatum(), _outPartitionSpec(), _outPathInfo(), _outPathKey(), _outPathTarget(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlanInfo(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlannerParamItem(), _outProjectionPath(), _outProjectSetPath(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTableFunc(), _outRangeTableFuncCol(), _outRangeTableSample(), _outRangeTblEntry(), _outRangeTblFunction(), _outRangeVar(), _outRecursiveUnionPath(), _outRelabelType(), _outRelOptInfo(), _outResTarget(), _outRestrictInfo(), _outResult(), _outResultPath(), _outRollupData(), _outRowCompareExpr(), _outRowExpr(), _outSampleScan(), _outScalarArrayOpExpr(), _outSelectStmt(), _outSetOperationStmt(), _outSetOpPath(), _outSortBy(), _outSortPath(), _outSpecialJoinInfo(), _outSubLink(), _outSubPlan(), _outSubqueryScan(), _outSubqueryScanPath(), _outTableFunc(), _outTableFuncScan(), _outTableLikeClause(), _outTableSampleClause(), _outTargetEntry(), _outTidPath(), _outTidScan(), _outTypeCast(), _outTypeName(), _outUniquePath(), _outUpperUniquePath(), _outValuesScan(), _outWindowAgg(), _outWindowAggPath(), _outWindowClause(), _outWindowDef(), _outWindowFunc(), _outWithCheckOption(), _outWithClause(), _outXmlExpr(), and _outXmlSerialize().

◆ WRITE_NODE_TYPE

#define WRITE_NODE_TYPE (   nodelabel)    appendStringInfoString(str, nodelabel)

Definition at line 46 of file outfuncs.c.

Referenced by _outA_ArrayExpr(), _outA_Indices(), _outA_Indirection(), _outA_Star(), _outAConst(), _outAExpr(), _outAgg(), _outAggPath(), _outAggref(), _outAlias(), _outAlternativeSubPlan(), _outAppend(), _outAppendPath(), _outAppendRelInfo(), _outArrayCoerceExpr(), _outArrayExpr(), _outArrayRef(), _outBitmapAnd(), _outBitmapAndPath(), _outBitmapHeapPath(), _outBitmapHeapScan(), _outBitmapIndexScan(), _outBitmapOr(), _outBitmapOrPath(), _outBooleanTest(), _outBoolExpr(), _outCaseExpr(), _outCaseTestExpr(), _outCaseWhen(), _outCoalesceExpr(), _outCoerceToDomain(), _outCoerceToDomainValue(), _outCoerceViaIO(), _outCollateClause(), _outCollateExpr(), _outColumnDef(), _outColumnRef(), _outCommonTableExpr(), _outConst(), _outConstraint(), _outConvertRowtypeExpr(), _outCreateForeignTableStmt(), _outCreateStatsStmt(), _outCreateStmt(), _outCteScan(), _outCurrentOfExpr(), _outCustomPath(), _outCustomScan(), _outDeclareCursorStmt(), _outDefElem(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outExtensibleNode(), _outFieldSelect(), _outFieldStore(), _outForeignKeyCacheInfo(), _outForeignKeyOptInfo(), _outForeignPath(), _outForeignScan(), _outFromExpr(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outGather(), _outGatherMerge(), _outGatherMergePath(), _outGatherPath(), _outGroup(), _outGroupingFunc(), _outGroupingSet(), _outGroupingSetData(), _outGroupingSetsPath(), _outGroupPath(), _outHash(), _outHashJoin(), _outHashPath(), _outImportForeignSchemaStmt(), _outIndexElem(), _outIndexOnlyScan(), _outIndexOptInfo(), _outIndexPath(), _outIndexScan(), _outIndexStmt(), _outInferenceElem(), _outIntoClause(), _outJoin(), _outJoinExpr(), _outLimit(), _outLimitPath(), _outLockingClause(), _outLockRows(), _outLockRowsPath(), _outMaterial(), _outMaterialPath(), _outMergeAppend(), _outMergeAppendPath(), _outMergeJoin(), _outMergePath(), _outMinMaxAggInfo(), _outMinMaxAggPath(), _outMinMaxExpr(), _outModifyTable(), _outModifyTablePath(), _outMultiAssignRef(), _outNamedArgExpr(), _outNamedTuplestoreScan(), _outNestLoop(), _outNestLoopParam(), _outNestPath(), _outNextValueExpr(), _outNotifyStmt(), _outNullIfExpr(), _outNullTest(), _outOnConflictExpr(), _outOpExpr(), _outParam(), _outParamPathInfo(), _outParamRef(), _outPartitionBoundSpec(), _outPartitionedChildRelInfo(), _outPartitionElem(), _outPartitionRangeDatum(), _outPartitionSpec(), _outPath(), _outPathKey(), _outPathTarget(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlan(), _outPlanInvalItem(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlannerParamItem(), _outPlanRowMark(), _outProjectionPath(), _outProjectSet(), _outProjectSetPath(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTableFunc(), _outRangeTableFuncCol(), _outRangeTableSample(), _outRangeTblEntry(), _outRangeTblFunction(), _outRangeTblRef(), _outRangeVar(), _outRecursiveUnion(), _outRecursiveUnionPath(), _outRelabelType(), _outRelOptInfo(), _outResTarget(), _outRestrictInfo(), _outResult(), _outResultPath(), _outRollupData(), _outRowCompareExpr(), _outRowExpr(), _outRowMarkClause(), _outSampleScan(), _outScalarArrayOpExpr(), _outScan(), _outSelectStmt(), _outSeqScan(), _outSetOp(), _outSetOperationStmt(), _outSetOpPath(), _outSetToDefault(), _outSort(), _outSortBy(), _outSortGroupClause(), _outSortPath(), _outSpecialJoinInfo(), _outSQLValueFunction(), _outStatisticExtInfo(), _outSubLink(), _outSubPlan(), _outSubqueryScan(), _outSubqueryScanPath(), _outTableFunc(), _outTableFuncScan(), _outTableLikeClause(), _outTableSampleClause(), _outTargetEntry(), _outTidPath(), _outTidScan(), _outTriggerTransition(), _outTypeCast(), _outTypeName(), _outUnique(), _outUniquePath(), _outUpperUniquePath(), _outValuesScan(), _outVar(), _outWindowAgg(), _outWindowAggPath(), _outWindowClause(), _outWindowDef(), _outWindowFunc(), _outWithCheckOption(), _outWithClause(), _outWorkTableScan(), _outXmlExpr(), and _outXmlSerialize().

◆ WRITE_OID_FIELD

◆ WRITE_STRING_FIELD

◆ WRITE_UINT64_FIELD

#define WRITE_UINT64_FIELD (   fldname)
Value:
node->fldname)
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
#define CppAsString(identifier)
Definition: c.h:223
#define UINT64_FORMAT
Definition: c.h:357

Definition at line 58 of file outfuncs.c.

Referenced by _outPlannedStmt().

◆ WRITE_UINT_FIELD

Function Documentation

◆ _outA_ArrayExpr()

static void _outA_ArrayExpr ( StringInfo  str,
const A_ArrayExpr node 
)
static

Definition at line 3326 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3327 {
3328  WRITE_NODE_TYPE("A_ARRAYEXPR");
3329 
3330  WRITE_NODE_FIELD(elements);
3331  WRITE_LOCATION_FIELD(location);
3332 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outA_Indices()

static void _outA_Indices ( StringInfo  str,
const A_Indices node 
)
static

Definition at line 3307 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3308 {
3309  WRITE_NODE_TYPE("A_INDICES");
3310 
3311  WRITE_BOOL_FIELD(is_slice);
3312  WRITE_NODE_FIELD(lidx);
3313  WRITE_NODE_FIELD(uidx);
3314 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outA_Indirection()

static void _outA_Indirection ( StringInfo  str,
const A_Indirection node 
)
static

Definition at line 3317 of file outfuncs.c.

References arg, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3318 {
3319  WRITE_NODE_TYPE("A_INDIRECTION");
3320 
3322  WRITE_NODE_FIELD(indirection);
3323 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outA_Star()

static void _outA_Star ( StringInfo  str,
const A_Star node 
)
static

Definition at line 3301 of file outfuncs.c.

References WRITE_NODE_TYPE.

Referenced by outNode().

3302 {
3303  WRITE_NODE_TYPE("A_STAR");
3304 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outAConst()

static void _outAConst ( StringInfo  str,
const A_Const node 
)
static

Definition at line 3291 of file outfuncs.c.

References _outValue(), appendStringInfoString(), A_Const::val, WRITE_LOCATION_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3292 {
3293  WRITE_NODE_TYPE("A_CONST");
3294 
3295  appendStringInfoString(str, " :val ");
3296  _outValue(str, &(node->val));
3297  WRITE_LOCATION_FIELD(location);
3298 }
static void _outValue(StringInfo str, const Value *value)
Definition: outfuncs.c:3232
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
Value val
Definition: parsenodes.h:287

◆ _outAExpr()

static void _outAExpr ( StringInfo  str,
const A_Expr node 
)
static

Definition at line 3150 of file outfuncs.c.

References AEXPR_BETWEEN, AEXPR_BETWEEN_SYM, AEXPR_DISTINCT, AEXPR_ILIKE, AEXPR_IN, AEXPR_LIKE, AEXPR_NOT_BETWEEN, AEXPR_NOT_BETWEEN_SYM, AEXPR_NOT_DISTINCT, AEXPR_NULLIF, AEXPR_OF, AEXPR_OP, AEXPR_OP_ALL, AEXPR_OP_ANY, AEXPR_PAREN, AEXPR_SIMILAR, appendStringInfoChar(), appendStringInfoString(), A_Expr::kind, name, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3151 {
3152  WRITE_NODE_TYPE("AEXPR");
3153 
3154  switch (node->kind)
3155  {
3156  case AEXPR_OP:
3157  appendStringInfoChar(str, ' ');
3159  break;
3160  case AEXPR_OP_ANY:
3161  appendStringInfoChar(str, ' ');
3163  appendStringInfoString(str, " ANY ");
3164  break;
3165  case AEXPR_OP_ALL:
3166  appendStringInfoChar(str, ' ');
3168  appendStringInfoString(str, " ALL ");
3169  break;
3170  case AEXPR_DISTINCT:
3171  appendStringInfoString(str, " DISTINCT ");
3173  break;
3174  case AEXPR_NOT_DISTINCT:
3175  appendStringInfoString(str, " NOT_DISTINCT ");
3177  break;
3178  case AEXPR_NULLIF:
3179  appendStringInfoString(str, " NULLIF ");
3181  break;
3182  case AEXPR_OF:
3183  appendStringInfoString(str, " OF ");
3185  break;
3186  case AEXPR_IN:
3187  appendStringInfoString(str, " IN ");
3189  break;
3190  case AEXPR_LIKE:
3191  appendStringInfoString(str, " LIKE ");
3193  break;
3194  case AEXPR_ILIKE:
3195  appendStringInfoString(str, " ILIKE ");
3197  break;
3198  case AEXPR_SIMILAR:
3199  appendStringInfoString(str, " SIMILAR ");
3201  break;
3202  case AEXPR_BETWEEN:
3203  appendStringInfoString(str, " BETWEEN ");
3205  break;
3206  case AEXPR_NOT_BETWEEN:
3207  appendStringInfoString(str, " NOT_BETWEEN ");
3209  break;
3210  case AEXPR_BETWEEN_SYM:
3211  appendStringInfoString(str, " BETWEEN_SYM ");
3213  break;
3214  case AEXPR_NOT_BETWEEN_SYM:
3215  appendStringInfoString(str, " NOT_BETWEEN_SYM ");
3217  break;
3218  case AEXPR_PAREN:
3219  appendStringInfoString(str, " PAREN");
3220  break;
3221  default:
3222  appendStringInfoString(str, " ??");
3223  break;
3224  }
3225 
3226  WRITE_NODE_FIELD(lexpr);
3227  WRITE_NODE_FIELD(rexpr);
3228  WRITE_LOCATION_FIELD(location);
3229 }
A_Expr_Kind kind
Definition: parsenodes.h:274
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
void appendStringInfoChar(StringInfo str, char ch)
Definition: stringinfo.c:169
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
const char * name
Definition: encode.c:521
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAgg()

static void _outAgg ( StringInfo  str,
const Agg node 
)
static

Definition at line 784 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), i, WRITE_BITMAPSET_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LONG_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

785 {
786  int i;
787 
788  WRITE_NODE_TYPE("AGG");
789 
790  _outPlanInfo(str, (const Plan *) node);
791 
792  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
793  WRITE_ENUM_FIELD(aggsplit, AggSplit);
794  WRITE_INT_FIELD(numCols);
795 
796  appendStringInfoString(str, " :grpColIdx");
797  for (i = 0; i < node->numCols; i++)
798  appendStringInfo(str, " %d", node->grpColIdx[i]);
799 
800  appendStringInfoString(str, " :grpOperators");
801  for (i = 0; i < node->numCols; i++)
802  appendStringInfo(str, " %u", node->grpOperators[i]);
803 
804  WRITE_LONG_FIELD(numGroups);
805  WRITE_BITMAPSET_FIELD(aggParams);
806  WRITE_NODE_FIELD(groupingSets);
807  WRITE_NODE_FIELD(chain);
808 }
int numCols
Definition: plannodes.h:787
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
AttrNumber * grpColIdx
Definition: plannodes.h:788
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_LONG_FIELD(fldname)
Definition: outfuncs.c:67
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AggSplit
Definition: nodes.h:761
AggStrategy
Definition: nodes.h:739
Oid * grpOperators
Definition: plannodes.h:789
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAggPath()

static void _outAggPath ( StringInfo  str,
const AggPath node 
)
static

Definition at line 1989 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1990 {
1991  WRITE_NODE_TYPE("AGGPATH");
1992 
1993  _outPathInfo(str, (const Path *) node);
1994 
1996  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
1997  WRITE_ENUM_FIELD(aggsplit, AggSplit);
1998  WRITE_FLOAT_FIELD(numGroups, "%.0f");
1999  WRITE_NODE_FIELD(groupClause);
2000  WRITE_NODE_FIELD(qual);
2001 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AggSplit
Definition: nodes.h:761
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
AggStrategy
Definition: nodes.h:739
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAggref()

static void _outAggref ( StringInfo  str,
const Aggref node 
)
static

Definition at line 1136 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_BOOL_FIELD, WRITE_CHAR_FIELD, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

1137 {
1138  WRITE_NODE_TYPE("AGGREF");
1139 
1140  WRITE_OID_FIELD(aggfnoid);
1141  WRITE_OID_FIELD(aggtype);
1142  WRITE_OID_FIELD(aggcollid);
1143  WRITE_OID_FIELD(inputcollid);
1144  WRITE_OID_FIELD(aggtranstype);
1145  WRITE_NODE_FIELD(aggargtypes);
1146  WRITE_NODE_FIELD(aggdirectargs);
1148  WRITE_NODE_FIELD(aggorder);
1149  WRITE_NODE_FIELD(aggdistinct);
1150  WRITE_NODE_FIELD(aggfilter);
1151  WRITE_BOOL_FIELD(aggstar);
1152  WRITE_BOOL_FIELD(aggvariadic);
1153  WRITE_CHAR_FIELD(aggkind);
1154  WRITE_UINT_FIELD(agglevelsup);
1155  WRITE_ENUM_FIELD(aggsplit, AggSplit);
1156  WRITE_LOCATION_FIELD(location);
1157 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AggSplit
Definition: nodes.h:761
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAlias()

static void _outAlias ( StringInfo  str,
const Alias node 
)
static

Definition at line 1027 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

1028 {
1029  WRITE_NODE_TYPE("ALIAS");
1030 
1031  WRITE_STRING_FIELD(aliasname);
1032  WRITE_NODE_FIELD(colnames);
1033 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAlternativeSubPlan()

static void _outAlternativeSubPlan ( StringInfo  str,
const AlternativeSubPlan node 
)
static

Definition at line 1352 of file outfuncs.c.

References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1353 {
1354  WRITE_NODE_TYPE("ALTERNATIVESUBPLAN");
1355 
1356  WRITE_NODE_FIELD(subplans);
1357 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAppend()

static void _outAppend ( StringInfo  str,
const Append node 
)
static

Definition at line 395 of file outfuncs.c.

References _outPlanInfo(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

396 {
397  WRITE_NODE_TYPE("APPEND");
398 
399  _outPlanInfo(str, (const Plan *) node);
400 
401  WRITE_NODE_FIELD(partitioned_rels);
402  WRITE_NODE_FIELD(appendplans);
403  WRITE_INT_FIELD(first_partial_plan);
404 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAppendPath()

static void _outAppendPath ( StringInfo  str,
const AppendPath node 
)
static

Definition at line 1867 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1868 {
1869  WRITE_NODE_TYPE("APPENDPATH");
1870 
1871  _outPathInfo(str, (const Path *) node);
1872 
1873  WRITE_NODE_FIELD(partitioned_rels);
1874  WRITE_NODE_FIELD(subpaths);
1875 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outAppendRelInfo()

static void _outAppendRelInfo ( StringInfo  str,
const AppendRelInfo node 
)
static

Definition at line 2518 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

2519 {
2520  WRITE_NODE_TYPE("APPENDRELINFO");
2521 
2522  WRITE_UINT_FIELD(parent_relid);
2523  WRITE_UINT_FIELD(child_relid);
2524  WRITE_OID_FIELD(parent_reltype);
2525  WRITE_OID_FIELD(child_reltype);
2526  WRITE_NODE_FIELD(translated_vars);
2527  WRITE_OID_FIELD(parent_reloid);
2528 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outArrayCoerceExpr()

static void _outArrayCoerceExpr ( StringInfo  str,
const ArrayCoerceExpr node 
)
static

Definition at line 1408 of file outfuncs.c.

References arg, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1409 {
1410  WRITE_NODE_TYPE("ARRAYCOERCEEXPR");
1411 
1413  WRITE_NODE_FIELD(elemexpr);
1414  WRITE_OID_FIELD(resulttype);
1415  WRITE_INT_FIELD(resulttypmod);
1416  WRITE_OID_FIELD(resultcollid);
1417  WRITE_ENUM_FIELD(coerceformat, CoercionForm);
1418  WRITE_LOCATION_FIELD(location);
1419 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outArrayExpr()

static void _outArrayExpr ( StringInfo  str,
const ArrayExpr node 
)
static

Definition at line 1476 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1477 {
1478  WRITE_NODE_TYPE("ARRAY");
1479 
1480  WRITE_OID_FIELD(array_typeid);
1481  WRITE_OID_FIELD(array_collid);
1482  WRITE_OID_FIELD(element_typeid);
1483  WRITE_NODE_FIELD(elements);
1484  WRITE_BOOL_FIELD(multidims);
1485  WRITE_LOCATION_FIELD(location);
1486 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outArrayRef()

static void _outArrayRef ( StringInfo  str,
const ArrayRef node 
)
static

Definition at line 1189 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1190 {
1191  WRITE_NODE_TYPE("ARRAYREF");
1192 
1193  WRITE_OID_FIELD(refarraytype);
1194  WRITE_OID_FIELD(refelemtype);
1195  WRITE_INT_FIELD(reftypmod);
1196  WRITE_OID_FIELD(refcollid);
1197  WRITE_NODE_FIELD(refupperindexpr);
1198  WRITE_NODE_FIELD(reflowerindexpr);
1199  WRITE_NODE_FIELD(refexpr);
1200  WRITE_NODE_FIELD(refassgnexpr);
1201 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapAnd()

static void _outBitmapAnd ( StringInfo  str,
const BitmapAnd node 
)
static

Definition at line 461 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

462 {
463  WRITE_NODE_TYPE("BITMAPAND");
464 
465  _outPlanInfo(str, (const Plan *) node);
466 
467  WRITE_NODE_FIELD(bitmapplans);
468 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapAndPath()

static void _outBitmapAndPath ( StringInfo  str,
const BitmapAndPath node 
)
static

Definition at line 1800 of file outfuncs.c.

References _outPathInfo(), WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1801 {
1802  WRITE_NODE_TYPE("BITMAPANDPATH");
1803 
1804  _outPathInfo(str, (const Path *) node);
1805 
1806  WRITE_NODE_FIELD(bitmapquals);
1807  WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
1808 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapHeapPath()

static void _outBitmapHeapPath ( StringInfo  str,
const BitmapHeapPath node 
)
static

Definition at line 1790 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1791 {
1792  WRITE_NODE_TYPE("BITMAPHEAPPATH");
1793 
1794  _outPathInfo(str, (const Path *) node);
1795 
1796  WRITE_NODE_FIELD(bitmapqual);
1797 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapHeapScan()

static void _outBitmapHeapScan ( StringInfo  str,
const BitmapHeapScan node 
)
static

Definition at line 597 of file outfuncs.c.

References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

598 {
599  WRITE_NODE_TYPE("BITMAPHEAPSCAN");
600 
601  _outScanInfo(str, (const Scan *) node);
602 
603  WRITE_NODE_FIELD(bitmapqualorig);
604 }
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapIndexScan()

static void _outBitmapIndexScan ( StringInfo  str,
const BitmapIndexScan node 
)
static

Definition at line 584 of file outfuncs.c.

References _outScanInfo(), WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

585 {
586  WRITE_NODE_TYPE("BITMAPINDEXSCAN");
587 
588  _outScanInfo(str, (const Scan *) node);
589 
590  WRITE_OID_FIELD(indexid);
591  WRITE_BOOL_FIELD(isshared);
592  WRITE_NODE_FIELD(indexqual);
593  WRITE_NODE_FIELD(indexqualorig);
594 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapOr()

static void _outBitmapOr ( StringInfo  str,
const BitmapOr node 
)
static

Definition at line 471 of file outfuncs.c.

References _outPlanInfo(), WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

472 {
473  WRITE_NODE_TYPE("BITMAPOR");
474 
475  _outPlanInfo(str, (const Plan *) node);
476 
477  WRITE_BOOL_FIELD(isshared);
478  WRITE_NODE_FIELD(bitmapplans);
479 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBitmapOrPath()

static void _outBitmapOrPath ( StringInfo  str,
const BitmapOrPath node 
)
static

Definition at line 1811 of file outfuncs.c.

References _outPathInfo(), WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1812 {
1813  WRITE_NODE_TYPE("BITMAPORPATH");
1814 
1815  _outPathInfo(str, (const Path *) node);
1816 
1817  WRITE_NODE_FIELD(bitmapquals);
1818  WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
1819 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBooleanTest()

static void _outBooleanTest ( StringInfo  str,
const BooleanTest node 
)
static

Definition at line 1576 of file outfuncs.c.

References arg, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1577 {
1578  WRITE_NODE_TYPE("BOOLEANTEST");
1579 
1581  WRITE_ENUM_FIELD(booltesttype, BoolTestType);
1582  WRITE_LOCATION_FIELD(location);
1583 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
BoolTestType
Definition: primnodes.h:1202
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outBoolExpr()

static void _outBoolExpr ( StringInfo  str,
const BoolExpr node 
)
static

Definition at line 1289 of file outfuncs.c.

References AND_EXPR, appendStringInfoString(), generate_unaccent_rules::args, BoolExpr::boolop, NOT_EXPR, OR_EXPR, outToken(), WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1290 {
1291  char *opstr = NULL;
1292 
1293  WRITE_NODE_TYPE("BOOLEXPR");
1294 
1295  /* do-it-yourself enum representation */
1296  switch (node->boolop)
1297  {
1298  case AND_EXPR:
1299  opstr = "and";
1300  break;
1301  case OR_EXPR:
1302  opstr = "or";
1303  break;
1304  case NOT_EXPR:
1305  opstr = "not";
1306  break;
1307  }
1308  appendStringInfoString(str, " :boolop ");
1309  outToken(str, opstr);
1310 
1312  WRITE_LOCATION_FIELD(location);
1313 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:120
BoolExprType boolop
Definition: primnodes.h:562
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCaseExpr()

static void _outCaseExpr ( StringInfo  str,
const CaseExpr node 
)
static

Definition at line 1443 of file outfuncs.c.

References arg, generate_unaccent_rules::args, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1444 {
1445  WRITE_NODE_TYPE("CASE");
1446 
1447  WRITE_OID_FIELD(casetype);
1448  WRITE_OID_FIELD(casecollid);
1451  WRITE_NODE_FIELD(defresult);
1452  WRITE_LOCATION_FIELD(location);
1453 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCaseTestExpr()

static void _outCaseTestExpr ( StringInfo  str,
const CaseTestExpr node 
)
static

Definition at line 1466 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1467 {
1468  WRITE_NODE_TYPE("CASETESTEXPR");
1469 
1470  WRITE_OID_FIELD(typeId);
1471  WRITE_INT_FIELD(typeMod);
1472  WRITE_OID_FIELD(collation);
1473 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outCaseWhen()

static void _outCaseWhen ( StringInfo  str,
const CaseWhen node 
)
static

Definition at line 1456 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1457 {
1458  WRITE_NODE_TYPE("WHEN");
1459 
1460  WRITE_NODE_FIELD(expr);
1461  WRITE_NODE_FIELD(result);
1462  WRITE_LOCATION_FIELD(location);
1463 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCoalesceExpr()

static void _outCoalesceExpr ( StringInfo  str,
const CoalesceExpr node 
)
static

Definition at line 1514 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1515 {
1516  WRITE_NODE_TYPE("COALESCE");
1517 
1518  WRITE_OID_FIELD(coalescetype);
1519  WRITE_OID_FIELD(coalescecollid);
1521  WRITE_LOCATION_FIELD(location);
1522 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCoerceToDomain()

static void _outCoerceToDomain ( StringInfo  str,
const CoerceToDomain node 
)
static

Definition at line 1586 of file outfuncs.c.

References arg, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1587 {
1588  WRITE_NODE_TYPE("COERCETODOMAIN");
1589 
1591  WRITE_OID_FIELD(resulttype);
1592  WRITE_INT_FIELD(resulttypmod);
1593  WRITE_OID_FIELD(resultcollid);
1594  WRITE_ENUM_FIELD(coercionformat, CoercionForm);
1595  WRITE_LOCATION_FIELD(location);
1596 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCoerceToDomainValue()

static void _outCoerceToDomainValue ( StringInfo  str,
const CoerceToDomainValue node 
)
static

Definition at line 1599 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1600 {
1601  WRITE_NODE_TYPE("COERCETODOMAINVALUE");
1602 
1603  WRITE_OID_FIELD(typeId);
1604  WRITE_INT_FIELD(typeMod);
1605  WRITE_OID_FIELD(collation);
1606  WRITE_LOCATION_FIELD(location);
1607 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outCoerceViaIO()

static void _outCoerceViaIO ( StringInfo  str,
const CoerceViaIO node 
)
static

Definition at line 1396 of file outfuncs.c.

References arg, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1397 {
1398  WRITE_NODE_TYPE("COERCEVIAIO");
1399 
1401  WRITE_OID_FIELD(resulttype);
1402  WRITE_OID_FIELD(resultcollid);
1403  WRITE_ENUM_FIELD(coerceformat, CoercionForm);
1404  WRITE_LOCATION_FIELD(location);
1405 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCollateClause()

static void _outCollateClause ( StringInfo  str,
const CollateClause node 
)
static

Definition at line 2856 of file outfuncs.c.

References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2857 {
2858  WRITE_NODE_TYPE("COLLATECLAUSE");
2859 
2861  WRITE_NODE_FIELD(collname);
2862  WRITE_LOCATION_FIELD(location);
2863 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCollateExpr()

static void _outCollateExpr ( StringInfo  str,
const CollateExpr node 
)
static

Definition at line 1433 of file outfuncs.c.

References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1434 {
1435  WRITE_NODE_TYPE("COLLATE");
1436 
1438  WRITE_OID_FIELD(collOid);
1439  WRITE_LOCATION_FIELD(location);
1440 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outColumnDef()

static void _outColumnDef ( StringInfo  str,
const ColumnDef node 
)
static

Definition at line 2807 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_CHAR_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_STRING_FIELD.

Referenced by outNode().

2808 {
2809  WRITE_NODE_TYPE("COLUMNDEF");
2810 
2811  WRITE_STRING_FIELD(colname);
2812  WRITE_NODE_FIELD(typeName);
2813  WRITE_INT_FIELD(inhcount);
2814  WRITE_BOOL_FIELD(is_local);
2815  WRITE_BOOL_FIELD(is_not_null);
2816  WRITE_BOOL_FIELD(is_from_type);
2817  WRITE_BOOL_FIELD(is_from_parent);
2818  WRITE_CHAR_FIELD(storage);
2819  WRITE_NODE_FIELD(raw_default);
2820  WRITE_NODE_FIELD(cooked_default);
2821  WRITE_CHAR_FIELD(identity);
2822  WRITE_NODE_FIELD(identitySequence);
2823  WRITE_NODE_FIELD(collClause);
2824  WRITE_OID_FIELD(collOid);
2825  WRITE_NODE_FIELD(constraints);
2826  WRITE_NODE_FIELD(fdwoptions);
2827  WRITE_LOCATION_FIELD(location);
2828 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outColumnRef()

static void _outColumnRef ( StringInfo  str,
const ColumnRef node 
)
static

Definition at line 3273 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3274 {
3275  WRITE_NODE_TYPE("COLUMNREF");
3276 
3277  WRITE_NODE_FIELD(fields);
3278  WRITE_LOCATION_FIELD(location);
3279 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCommonTableExpr()

static void _outCommonTableExpr ( StringInfo  str,
const CommonTableExpr node 
)
static

Definition at line 3024 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

3025 {
3026  WRITE_NODE_TYPE("COMMONTABLEEXPR");
3027 
3028  WRITE_STRING_FIELD(ctename);
3029  WRITE_NODE_FIELD(aliascolnames);
3030  WRITE_NODE_FIELD(ctequery);
3031  WRITE_LOCATION_FIELD(location);
3032  WRITE_BOOL_FIELD(cterecursive);
3033  WRITE_INT_FIELD(cterefcount);
3034  WRITE_NODE_FIELD(ctecolnames);
3035  WRITE_NODE_FIELD(ctecoltypes);
3036  WRITE_NODE_FIELD(ctecoltypmods);
3037  WRITE_NODE_FIELD(ctecolcollations);
3038 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outConst()

static void _outConst ( StringInfo  str,
const Const node 
)
static

Definition at line 1103 of file outfuncs.c.

References appendStringInfoString(), Const::constbyval, Const::constisnull, Const::constlen, Const::constvalue, outDatum(), WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1104 {
1105  WRITE_NODE_TYPE("CONST");
1106 
1107  WRITE_OID_FIELD(consttype);
1108  WRITE_INT_FIELD(consttypmod);
1109  WRITE_OID_FIELD(constcollid);
1110  WRITE_INT_FIELD(constlen);
1111  WRITE_BOOL_FIELD(constbyval);
1112  WRITE_BOOL_FIELD(constisnull);
1113  WRITE_LOCATION_FIELD(location);
1114 
1115  appendStringInfoString(str, " :constvalue ");
1116  if (node->constisnull)
1117  appendStringInfoString(str, "<>");
1118  else
1119  outDatum(str, node->constvalue, node->constlen, node->constbyval);
1120 }
Datum constvalue
Definition: primnodes.h:196
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
bool constbyval
Definition: primnodes.h:199
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
void outDatum(StringInfo str, Datum value, int typlen, bool typbyval)
Definition: outfuncs.c:226
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
int constlen
Definition: primnodes.h:195
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
bool constisnull
Definition: primnodes.h:197

◆ _outConstraint()

static void _outConstraint ( StringInfo  str,
const Constraint node 
)
static

Definition at line 3446 of file outfuncs.c.

References appendStringInfo(), appendStringInfoString(), CONSTR_ATTR_DEFERRABLE, CONSTR_ATTR_DEFERRED, CONSTR_ATTR_IMMEDIATE, CONSTR_ATTR_NOT_DEFERRABLE, CONSTR_CHECK, CONSTR_DEFAULT, CONSTR_EXCLUSION, CONSTR_FOREIGN, CONSTR_IDENTITY, CONSTR_NOTNULL, CONSTR_NULL, CONSTR_PRIMARY, CONSTR_UNIQUE, Constraint::contype, WRITE_BOOL_FIELD, WRITE_CHAR_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_STRING_FIELD.

Referenced by outNode().

3447 {
3448  WRITE_NODE_TYPE("CONSTRAINT");
3449 
3450  WRITE_STRING_FIELD(conname);
3451  WRITE_BOOL_FIELD(deferrable);
3452  WRITE_BOOL_FIELD(initdeferred);
3453  WRITE_LOCATION_FIELD(location);
3454 
3455  appendStringInfoString(str, " :contype ");
3456  switch (node->contype)
3457  {
3458  case CONSTR_NULL:
3459  appendStringInfoString(str, "NULL");
3460  break;
3461 
3462  case CONSTR_NOTNULL:
3463  appendStringInfoString(str, "NOT_NULL");
3464  break;
3465 
3466  case CONSTR_DEFAULT:
3467  appendStringInfoString(str, "DEFAULT");
3468  WRITE_NODE_FIELD(raw_expr);
3469  WRITE_STRING_FIELD(cooked_expr);
3470  break;
3471 
3472  case CONSTR_IDENTITY:
3473  appendStringInfoString(str, "IDENTITY");
3474  WRITE_NODE_FIELD(raw_expr);
3475  WRITE_STRING_FIELD(cooked_expr);
3476  WRITE_CHAR_FIELD(generated_when);
3477  break;
3478 
3479  case CONSTR_CHECK:
3480  appendStringInfoString(str, "CHECK");
3481  WRITE_BOOL_FIELD(is_no_inherit);
3482  WRITE_NODE_FIELD(raw_expr);
3483  WRITE_STRING_FIELD(cooked_expr);
3484  break;
3485 
3486  case CONSTR_PRIMARY:
3487  appendStringInfoString(str, "PRIMARY_KEY");
3488  WRITE_NODE_FIELD(keys);
3490  WRITE_STRING_FIELD(indexname);
3491  WRITE_STRING_FIELD(indexspace);
3492  /* access_method and where_clause not currently used */
3493  break;
3494 
3495  case CONSTR_UNIQUE:
3496  appendStringInfoString(str, "UNIQUE");
3497  WRITE_NODE_FIELD(keys);
3499  WRITE_STRING_FIELD(indexname);
3500  WRITE_STRING_FIELD(indexspace);
3501  /* access_method and where_clause not currently used */
3502  break;
3503 
3504  case CONSTR_EXCLUSION:
3505  appendStringInfoString(str, "EXCLUSION");
3506  WRITE_NODE_FIELD(exclusions);
3508  WRITE_STRING_FIELD(indexname);
3509  WRITE_STRING_FIELD(indexspace);
3510  WRITE_STRING_FIELD(access_method);
3511  WRITE_NODE_FIELD(where_clause);
3512  break;
3513 
3514  case CONSTR_FOREIGN:
3515  appendStringInfoString(str, "FOREIGN_KEY");
3516  WRITE_NODE_FIELD(pktable);
3517  WRITE_NODE_FIELD(fk_attrs);
3518  WRITE_NODE_FIELD(pk_attrs);
3519  WRITE_CHAR_FIELD(fk_matchtype);
3520  WRITE_CHAR_FIELD(fk_upd_action);
3521  WRITE_CHAR_FIELD(fk_del_action);
3522  WRITE_NODE_FIELD(old_conpfeqop);
3523  WRITE_OID_FIELD(old_pktable_oid);
3524  WRITE_BOOL_FIELD(skip_validation);
3525  WRITE_BOOL_FIELD(initially_valid);
3526  break;
3527 
3529  appendStringInfoString(str, "ATTR_DEFERRABLE");
3530  break;
3531 
3533  appendStringInfoString(str, "ATTR_NOT_DEFERRABLE");
3534  break;
3535 
3536  case CONSTR_ATTR_DEFERRED:
3537  appendStringInfoString(str, "ATTR_DEFERRED");
3538  break;
3539 
3540  case CONSTR_ATTR_IMMEDIATE:
3541  appendStringInfoString(str, "ATTR_IMMEDIATE");
3542  break;
3543 
3544  default:
3545  appendStringInfo(str, "<unrecognized_constraint %d>",
3546  (int) node->contype);
3547  break;
3548  }
3549 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
ConstrType contype
Definition: parsenodes.h:2089
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outConvertRowtypeExpr()

static void _outConvertRowtypeExpr ( StringInfo  str,
const ConvertRowtypeExpr node 
)
static

Definition at line 1422 of file outfuncs.c.

References arg, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1423 {
1424  WRITE_NODE_TYPE("CONVERTROWTYPEEXPR");
1425 
1427  WRITE_OID_FIELD(resulttype);
1428  WRITE_ENUM_FIELD(convertformat, CoercionForm);
1429  WRITE_LOCATION_FIELD(location);
1430 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCreateForeignTableStmt()

static void _outCreateForeignTableStmt ( StringInfo  str,
const CreateForeignTableStmt node 
)
static

Definition at line 2631 of file outfuncs.c.

References _outCreateStmtInfo(), WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2632 {
2633  WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT");
2634 
2635  _outCreateStmtInfo(str, (const CreateStmt *) node);
2636 
2637  WRITE_STRING_FIELD(servername);
2639 }
static void _outCreateStmtInfo(StringInfo str, const CreateStmt *node)
Definition: outfuncs.c:2607
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCreateStatsStmt()

static void _outCreateStatsStmt ( StringInfo  str,
const CreateStatsStmt node 
)
static

Definition at line 2682 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2683 {
2684  WRITE_NODE_TYPE("CREATESTATSSTMT");
2685 
2686  WRITE_NODE_FIELD(defnames);
2687  WRITE_NODE_FIELD(stat_types);
2688  WRITE_NODE_FIELD(exprs);
2689  WRITE_NODE_FIELD(relations);
2690  WRITE_BOOL_FIELD(if_not_exists);
2691 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCreateStmt()

static void _outCreateStmt ( StringInfo  str,
const CreateStmt node 
)
static

Definition at line 2623 of file outfuncs.c.

References _outCreateStmtInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

2624 {
2625  WRITE_NODE_TYPE("CREATESTMT");
2626 
2627  _outCreateStmtInfo(str, (const CreateStmt *) node);
2628 }
static void _outCreateStmtInfo(StringInfo str, const CreateStmt *node)
Definition: outfuncs.c:2607
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outCreateStmtInfo()

static void _outCreateStmtInfo ( StringInfo  str,
const CreateStmt node 
)
static

Definition at line 2607 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_STRING_FIELD.

Referenced by _outCreateForeignTableStmt(), and _outCreateStmt().

2608 {
2609  WRITE_NODE_FIELD(relation);
2610  WRITE_NODE_FIELD(tableElts);
2611  WRITE_NODE_FIELD(inhRelations);
2612  WRITE_NODE_FIELD(partspec);
2613  WRITE_NODE_FIELD(partbound);
2614  WRITE_NODE_FIELD(ofTypename);
2615  WRITE_NODE_FIELD(constraints);
2617  WRITE_ENUM_FIELD(oncommit, OnCommitAction);
2618  WRITE_STRING_FIELD(tablespacename);
2619  WRITE_BOOL_FIELD(if_not_exists);
2620 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
OnCommitAction
Definition: primnodes.h:47
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCteScan()

static void _outCteScan ( StringInfo  str,
const CteScan node 
)
static

Definition at line 658 of file outfuncs.c.

References _outScanInfo(), WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

659 {
660  WRITE_NODE_TYPE("CTESCAN");
661 
662  _outScanInfo(str, (const Scan *) node);
663 
664  WRITE_INT_FIELD(ctePlanId);
665  WRITE_INT_FIELD(cteParam);
666 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outCurrentOfExpr()

static void _outCurrentOfExpr ( StringInfo  str,
const CurrentOfExpr node 
)
static

Definition at line 1621 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

1622 {
1623  WRITE_NODE_TYPE("CURRENTOFEXPR");
1624 
1625  WRITE_UINT_FIELD(cvarno);
1626  WRITE_STRING_FIELD(cursor_name);
1627  WRITE_INT_FIELD(cursor_param);
1628 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90

◆ _outCustomPath()

static void _outCustomPath ( StringInfo  str,
const CustomPath node 
)
static

Definition at line 1853 of file outfuncs.c.

References _outPathInfo(), appendStringInfoString(), outToken(), WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

1854 {
1855  WRITE_NODE_TYPE("CUSTOMPATH");
1856 
1857  _outPathInfo(str, (const Path *) node);
1858 
1859  WRITE_UINT_FIELD(flags);
1860  WRITE_NODE_FIELD(custom_paths);
1861  WRITE_NODE_FIELD(custom_private);
1862  appendStringInfoString(str, " :methods ");
1863  outToken(str, node->methods->CustomName);
1864 }
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:120
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
const struct CustomPathMethods * methods
Definition: relation.h:1255
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
const char * CustomName
Definition: extensible.h:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outCustomScan()

static void _outCustomScan ( StringInfo  str,
const CustomScan node 
)
static

Definition at line 706 of file outfuncs.c.

References _outScanInfo(), appendStringInfoString(), outToken(), WRITE_BITMAPSET_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

707 {
708  WRITE_NODE_TYPE("CUSTOMSCAN");
709 
710  _outScanInfo(str, (const Scan *) node);
711 
712  WRITE_UINT_FIELD(flags);
713  WRITE_NODE_FIELD(custom_plans);
714  WRITE_NODE_FIELD(custom_exprs);
715  WRITE_NODE_FIELD(custom_private);
716  WRITE_NODE_FIELD(custom_scan_tlist);
717  WRITE_BITMAPSET_FIELD(custom_relids);
718  /* CustomName is a key to lookup CustomScanMethods */
719  appendStringInfoString(str, " :methods ");
720  outToken(str, node->methods->CustomName);
721 }
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:120
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
const struct CustomScanMethods * methods
Definition: plannodes.h:635
const char * CustomName
Definition: extensible.h:110
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outDeclareCursorStmt()

static void _outDeclareCursorStmt ( StringInfo  str,
const DeclareCursorStmt node 
)
static

Definition at line 2703 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2704 {
2705  WRITE_NODE_TYPE("DECLARECURSOR");
2706 
2707  WRITE_STRING_FIELD(portalname);
2709  WRITE_NODE_FIELD(query);
2710 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outDefElem()

static void _outDefElem ( StringInfo  str,
const DefElem node 
)
static

Definition at line 2755 of file outfuncs.c.

References arg, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2756 {
2757  WRITE_NODE_TYPE("DEFELEM");
2758 
2759  WRITE_STRING_FIELD(defnamespace);
2760  WRITE_STRING_FIELD(defname);
2762  WRITE_ENUM_FIELD(defaction, DefElemAction);
2763  WRITE_LOCATION_FIELD(location);
2764 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
DefElemAction
Definition: parsenodes.h:715
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outDistinctExpr()

static void _outDistinctExpr ( StringInfo  str,
const DistinctExpr node 
)
static

Definition at line 1246 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1247 {
1248  WRITE_NODE_TYPE("DISTINCTEXPR");
1249 
1250  WRITE_OID_FIELD(opno);
1251  WRITE_OID_FIELD(opfuncid);
1252  WRITE_OID_FIELD(opresulttype);
1253  WRITE_BOOL_FIELD(opretset);
1254  WRITE_OID_FIELD(opcollid);
1255  WRITE_OID_FIELD(inputcollid);
1257  WRITE_LOCATION_FIELD(location);
1258 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outEquivalenceClass()

static void _outEquivalenceClass ( StringInfo  str,
const EquivalenceClass node 
)
static

Definition at line 2377 of file outfuncs.c.

References EquivalenceClass::ec_merged, WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

2378 {
2379  /*
2380  * To simplify reading, we just chase up to the topmost merged EC and
2381  * print that, without bothering to show the merge-ees separately.
2382  */
2383  while (node->ec_merged)
2384  node = node->ec_merged;
2385 
2386  WRITE_NODE_TYPE("EQUIVALENCECLASS");
2387 
2388  WRITE_NODE_FIELD(ec_opfamilies);
2389  WRITE_OID_FIELD(ec_collation);
2390  WRITE_NODE_FIELD(ec_members);
2391  WRITE_NODE_FIELD(ec_sources);
2392  WRITE_NODE_FIELD(ec_derives);
2393  WRITE_BITMAPSET_FIELD(ec_relids);
2394  WRITE_BOOL_FIELD(ec_has_const);
2395  WRITE_BOOL_FIELD(ec_has_volatile);
2396  WRITE_BOOL_FIELD(ec_below_outer_join);
2397  WRITE_BOOL_FIELD(ec_broken);
2398  WRITE_UINT_FIELD(ec_sortref);
2399  WRITE_UINT_FIELD(ec_min_security);
2400  WRITE_UINT_FIELD(ec_max_security);
2401 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
struct EquivalenceClass * ec_merged
Definition: relation.h:878
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outEquivalenceMember()

static void _outEquivalenceMember ( StringInfo  str,
const EquivalenceMember node 
)
static

Definition at line 2404 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

2405 {
2406  WRITE_NODE_TYPE("EQUIVALENCEMEMBER");
2407 
2408  WRITE_NODE_FIELD(em_expr);
2409  WRITE_BITMAPSET_FIELD(em_relids);
2410  WRITE_BITMAPSET_FIELD(em_nullable_relids);
2411  WRITE_BOOL_FIELD(em_is_const);
2412  WRITE_BOOL_FIELD(em_is_child);
2413  WRITE_OID_FIELD(em_datatype);
2414 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outExtensibleNode()

static void _outExtensibleNode ( StringInfo  str,
const ExtensibleNode node 
)
static

Definition at line 2583 of file outfuncs.c.

References ExtensibleNode::extnodename, GetExtensibleNodeMethods(), ExtensibleNodeMethods::nodeOut, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2584 {
2585  const ExtensibleNodeMethods *methods;
2586 
2587  methods = GetExtensibleNodeMethods(node->extnodename, false);
2588 
2589  WRITE_NODE_TYPE("EXTENSIBLENODE");
2590 
2591  WRITE_STRING_FIELD(extnodename);
2592 
2593  /* serialize the private fields */
2594  methods->nodeOut(str, node);
2595 }
const char * extnodename
Definition: extensible.h:35
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
void(* nodeOut)(struct StringInfoData *str, const struct ExtensibleNode *node)
Definition: extensible.h:68
const ExtensibleNodeMethods * GetExtensibleNodeMethods(const char *extnodename, bool missing_ok)
Definition: extensible.c:125

◆ _outFieldSelect()

static void _outFieldSelect ( StringInfo  str,
const FieldSelect node 
)
static

Definition at line 1360 of file outfuncs.c.

References arg, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1361 {
1362  WRITE_NODE_TYPE("FIELDSELECT");
1363 
1365  WRITE_INT_FIELD(fieldnum);
1366  WRITE_OID_FIELD(resulttype);
1367  WRITE_INT_FIELD(resulttypmod);
1368  WRITE_OID_FIELD(resultcollid);
1369 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outFieldStore()

static void _outFieldStore ( StringInfo  str,
const FieldStore node 
)
static

Definition at line 1372 of file outfuncs.c.

References arg, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1373 {
1374  WRITE_NODE_TYPE("FIELDSTORE");
1375 
1377  WRITE_NODE_FIELD(newvals);
1378  WRITE_NODE_FIELD(fieldnums);
1379  WRITE_OID_FIELD(resulttype);
1380 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outForeignKeyCacheInfo()

static void _outForeignKeyCacheInfo ( StringInfo  str,
const ForeignKeyCacheInfo node 
)
static

Definition at line 3552 of file outfuncs.c.

References appendStringInfo(), appendStringInfoString(), ForeignKeyCacheInfo::confkey, ForeignKeyCacheInfo::conkey, ForeignKeyCacheInfo::conpfeqop, i, ForeignKeyCacheInfo::nkeys, WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

3553 {
3554  int i;
3555 
3556  WRITE_NODE_TYPE("FOREIGNKEYCACHEINFO");
3557 
3558  WRITE_OID_FIELD(conrelid);
3559  WRITE_OID_FIELD(confrelid);
3560  WRITE_INT_FIELD(nkeys);
3561  appendStringInfoString(str, " :conkey");
3562  for (i = 0; i < node->nkeys; i++)
3563  appendStringInfo(str, " %d", node->conkey[i]);
3564  appendStringInfoString(str, " :confkey");
3565  for (i = 0; i < node->nkeys; i++)
3566  appendStringInfo(str, " %d", node->confkey[i]);
3567  appendStringInfoString(str, " :conpfeqop");
3568  for (i = 0; i < node->nkeys; i++)
3569  appendStringInfo(str, " %u", node->conpfeqop[i]);
3570 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
AttrNumber conkey[INDEX_MAX_KEYS]
Definition: rel.h:243
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
Oid conpfeqop[INDEX_MAX_KEYS]
Definition: rel.h:245
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AttrNumber confkey[INDEX_MAX_KEYS]
Definition: rel.h:244
int i

◆ _outForeignKeyOptInfo()

static void _outForeignKeyOptInfo ( StringInfo  str,
const ForeignKeyOptInfo node 
)
static

Definition at line 2334 of file outfuncs.c.

References appendStringInfo(), appendStringInfoString(), ForeignKeyOptInfo::confkey, ForeignKeyOptInfo::conkey, ForeignKeyOptInfo::conpfeqop, ForeignKeyOptInfo::eclass, i, list_length(), ForeignKeyOptInfo::nkeys, ForeignKeyOptInfo::rinfos, WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2335 {
2336  int i;
2337 
2338  WRITE_NODE_TYPE("FOREIGNKEYOPTINFO");
2339 
2340  WRITE_UINT_FIELD(con_relid);
2341  WRITE_UINT_FIELD(ref_relid);
2342  WRITE_INT_FIELD(nkeys);
2343  appendStringInfoString(str, " :conkey");
2344  for (i = 0; i < node->nkeys; i++)
2345  appendStringInfo(str, " %d", node->conkey[i]);
2346  appendStringInfoString(str, " :confkey");
2347  for (i = 0; i < node->nkeys; i++)
2348  appendStringInfo(str, " %d", node->confkey[i]);
2349  appendStringInfoString(str, " :conpfeqop");
2350  for (i = 0; i < node->nkeys; i++)
2351  appendStringInfo(str, " %u", node->conpfeqop[i]);
2352  WRITE_INT_FIELD(nmatched_ec);
2353  WRITE_INT_FIELD(nmatched_rcols);
2354  WRITE_INT_FIELD(nmatched_ri);
2355  /* for compactness, just print the number of matches per column: */
2356  appendStringInfoString(str, " :eclass");
2357  for (i = 0; i < node->nkeys; i++)
2358  appendStringInfo(str, " %d", (node->eclass[i] != NULL));
2359  appendStringInfoString(str, " :rinfos");
2360  for (i = 0; i < node->nkeys; i++)
2361  appendStringInfo(str, " %d", list_length(node->rinfos[i]));
2362 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
Oid conpfeqop[INDEX_MAX_KEYS]
Definition: relation.h:791
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
struct EquivalenceClass * eclass[INDEX_MAX_KEYS]
Definition: relation.h:798
AttrNumber conkey[INDEX_MAX_KEYS]
Definition: relation.h:789
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static int list_length(const List *l)
Definition: pg_list.h:89
int i
AttrNumber confkey[INDEX_MAX_KEYS]
Definition: relation.h:790
List * rinfos[INDEX_MAX_KEYS]
Definition: relation.h:800

◆ _outForeignPath()

static void _outForeignPath ( StringInfo  str,
const ForeignPath node 
)
static

Definition at line 1842 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1843 {
1844  WRITE_NODE_TYPE("FOREIGNPATH");
1845 
1846  _outPathInfo(str, (const Path *) node);
1847 
1848  WRITE_NODE_FIELD(fdw_outerpath);
1849  WRITE_NODE_FIELD(fdw_private);
1850 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outForeignScan()

static void _outForeignScan ( StringInfo  str,
const ForeignScan node 
)
static

Definition at line 689 of file outfuncs.c.

References _outScanInfo(), WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

690 {
691  WRITE_NODE_TYPE("FOREIGNSCAN");
692 
693  _outScanInfo(str, (const Scan *) node);
694 
695  WRITE_ENUM_FIELD(operation, CmdType);
696  WRITE_OID_FIELD(fs_server);
697  WRITE_NODE_FIELD(fdw_exprs);
698  WRITE_NODE_FIELD(fdw_private);
699  WRITE_NODE_FIELD(fdw_scan_tlist);
700  WRITE_NODE_FIELD(fdw_recheck_quals);
701  WRITE_BITMAPSET_FIELD(fs_relids);
702  WRITE_BOOL_FIELD(fsSystemCol);
703 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
CmdType
Definition: nodes.h:653
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outFromExpr()

static void _outFromExpr ( StringInfo  str,
const FromExpr node 
)
static

Definition at line 1687 of file outfuncs.c.

References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1688 {
1689  WRITE_NODE_TYPE("FROMEXPR");
1690 
1691  WRITE_NODE_FIELD(fromlist);
1692  WRITE_NODE_FIELD(quals);
1693 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outFuncCall()

static void _outFuncCall ( StringInfo  str,
const FuncCall node 
)
static

Definition at line 2738 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2739 {
2740  WRITE_NODE_TYPE("FUNCCALL");
2741 
2742  WRITE_NODE_FIELD(funcname);
2744  WRITE_NODE_FIELD(agg_order);
2745  WRITE_NODE_FIELD(agg_filter);
2746  WRITE_BOOL_FIELD(agg_within_group);
2747  WRITE_BOOL_FIELD(agg_star);
2748  WRITE_BOOL_FIELD(agg_distinct);
2749  WRITE_BOOL_FIELD(func_variadic);
2750  WRITE_NODE_FIELD(over);
2751  WRITE_LOCATION_FIELD(location);
2752 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outFuncExpr()

static void _outFuncExpr ( StringInfo  str,
const FuncExpr node 
)
static

Definition at line 1204 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1205 {
1206  WRITE_NODE_TYPE("FUNCEXPR");
1207 
1208  WRITE_OID_FIELD(funcid);
1209  WRITE_OID_FIELD(funcresulttype);
1210  WRITE_BOOL_FIELD(funcretset);
1211  WRITE_BOOL_FIELD(funcvariadic);
1212  WRITE_ENUM_FIELD(funcformat, CoercionForm);
1213  WRITE_OID_FIELD(funccollid);
1214  WRITE_OID_FIELD(inputcollid);
1216  WRITE_LOCATION_FIELD(location);
1217 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outFunctionScan()

static void _outFunctionScan ( StringInfo  str,
const FunctionScan node 
)
static

Definition at line 627 of file outfuncs.c.

References _outScanInfo(), functions, WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

628 {
629  WRITE_NODE_TYPE("FUNCTIONSCAN");
630 
631  _outScanInfo(str, (const Scan *) node);
632 
634  WRITE_BOOL_FIELD(funcordinality);
635 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static const struct fns functions
Definition: regcomp.c:299
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGather()

static void _outGather ( StringInfo  str,
const Gather node 
)
static

Definition at line 482 of file outfuncs.c.

References _outPlanInfo(), WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

483 {
484  WRITE_NODE_TYPE("GATHER");
485 
486  _outPlanInfo(str, (const Plan *) node);
487 
488  WRITE_INT_FIELD(num_workers);
489  WRITE_INT_FIELD(rescan_param);
490  WRITE_BOOL_FIELD(single_copy);
491  WRITE_BOOL_FIELD(invisible);
492  WRITE_BITMAPSET_FIELD(initParam);
493 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outGatherMerge()

static void _outGatherMerge ( StringInfo  str,
const GatherMerge node 
)
static

Definition at line 496 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), booltostr, i, WRITE_BITMAPSET_FIELD, WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

497 {
498  int i;
499 
500  WRITE_NODE_TYPE("GATHERMERGE");
501 
502  _outPlanInfo(str, (const Plan *) node);
503 
504  WRITE_INT_FIELD(num_workers);
505  WRITE_INT_FIELD(rescan_param);
506  WRITE_INT_FIELD(numCols);
507 
508  appendStringInfoString(str, " :sortColIdx");
509  for (i = 0; i < node->numCols; i++)
510  appendStringInfo(str, " %d", node->sortColIdx[i]);
511 
512  appendStringInfoString(str, " :sortOperators");
513  for (i = 0; i < node->numCols; i++)
514  appendStringInfo(str, " %u", node->sortOperators[i]);
515 
516  appendStringInfoString(str, " :collations");
517  for (i = 0; i < node->numCols; i++)
518  appendStringInfo(str, " %u", node->collations[i]);
519 
520  appendStringInfoString(str, " :nullsFirst");
521  for (i = 0; i < node->numCols; i++)
522  appendStringInfo(str, " %s", booltostr(node->nullsFirst[i]));
523 
524  WRITE_BITMAPSET_FIELD(initParam);
525 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
Oid * collations
Definition: plannodes.h:869
AttrNumber * sortColIdx
Definition: plannodes.h:867
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define booltostr(x)
Definition: outfuncs.c:109
bool * nullsFirst
Definition: plannodes.h:870
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
Oid * sortOperators
Definition: plannodes.h:868
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
int i

◆ _outGatherMergePath()

static void _outGatherMergePath ( StringInfo  str,
const GatherMergePath node 
)
static

Definition at line 2138 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2139 {
2140  WRITE_NODE_TYPE("GATHERMERGEPATH");
2141 
2142  _outPathInfo(str, (const Path *) node);
2143 
2145  WRITE_INT_FIELD(num_workers);
2146 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGatherPath()

static void _outGatherPath ( StringInfo  str,
const GatherPath node 
)
static

Definition at line 1923 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1924 {
1925  WRITE_NODE_TYPE("GATHERPATH");
1926 
1927  _outPathInfo(str, (const Path *) node);
1928 
1930  WRITE_BOOL_FIELD(single_copy);
1931  WRITE_INT_FIELD(num_workers);
1932 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGroup()

static void _outGroup ( StringInfo  str,
const Group node 
)
static

Definition at line 851 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), i, WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

852 {
853  int i;
854 
855  WRITE_NODE_TYPE("GROUP");
856 
857  _outPlanInfo(str, (const Plan *) node);
858 
859  WRITE_INT_FIELD(numCols);
860 
861  appendStringInfoString(str, " :grpColIdx");
862  for (i = 0; i < node->numCols; i++)
863  appendStringInfo(str, " %d", node->grpColIdx[i]);
864 
865  appendStringInfoString(str, " :grpOperators");
866  for (i = 0; i < node->numCols; i++)
867  appendStringInfo(str, " %u", node->grpOperators[i]);
868 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
int numCols
Definition: plannodes.h:763
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
int i
AttrNumber * grpColIdx
Definition: plannodes.h:764
Oid * grpOperators
Definition: plannodes.h:765

◆ _outGroupingFunc()

static void _outGroupingFunc ( StringInfo  str,
const GroupingFunc node 
)
static

Definition at line 1160 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

1161 {
1162  WRITE_NODE_TYPE("GROUPINGFUNC");
1163 
1165  WRITE_NODE_FIELD(refs);
1166  WRITE_NODE_FIELD(cols);
1167  WRITE_UINT_FIELD(agglevelsup);
1168  WRITE_LOCATION_FIELD(location);
1169 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGroupingSet()

static void _outGroupingSet ( StringInfo  str,
const GroupingSet node 
)
static

Definition at line 2972 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2973 {
2974  WRITE_NODE_TYPE("GROUPINGSET");
2975 
2977  WRITE_NODE_FIELD(content);
2978  WRITE_LOCATION_FIELD(location);
2979 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
GroupingSetKind
Definition: parsenodes.h:1261
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGroupingSetData()

static void _outGroupingSetData ( StringInfo  str,
const GroupingSetData node 
)
static

Definition at line 2017 of file outfuncs.c.

References WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2018 {
2019  WRITE_NODE_TYPE("GSDATA");
2020 
2021  WRITE_NODE_FIELD(set);
2022  WRITE_FLOAT_FIELD(numGroups, "%.0f");
2023 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGroupingSetsPath()

static void _outGroupingSetsPath ( StringInfo  str,
const GroupingSetsPath node 
)
static

Definition at line 2026 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2027 {
2028  WRITE_NODE_TYPE("GROUPINGSETSPATH");
2029 
2030  _outPathInfo(str, (const Path *) node);
2031 
2033  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
2034  WRITE_NODE_FIELD(rollups);
2035  WRITE_NODE_FIELD(qual);
2036 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
AggStrategy
Definition: nodes.h:739
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outGroupPath()

static void _outGroupPath ( StringInfo  str,
const GroupPath node 
)
static

Definition at line 1966 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1967 {
1968  WRITE_NODE_TYPE("GROUPPATH");
1969 
1970  _outPathInfo(str, (const Path *) node);
1971 
1973  WRITE_NODE_FIELD(groupClause);
1974  WRITE_NODE_FIELD(qual);
1975 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outHash()

static void _outHash ( StringInfo  str,
const Hash node 
)
static

Definition at line 927 of file outfuncs.c.

References _outPlanInfo(), WRITE_BOOL_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

928 {
929  WRITE_NODE_TYPE("HASH");
930 
931  _outPlanInfo(str, (const Plan *) node);
932 
933  WRITE_OID_FIELD(skewTable);
934  WRITE_INT_FIELD(skewColumn);
935  WRITE_BOOL_FIELD(skewInherit);
936  WRITE_FLOAT_FIELD(rows_total, "%.0f");
937 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outHashJoin()

static void _outHashJoin ( StringInfo  str,
const HashJoin node 
)
static

Definition at line 774 of file outfuncs.c.

References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

775 {
776  WRITE_NODE_TYPE("HASHJOIN");
777 
778  _outJoinPlanInfo(str, (const Join *) node);
779 
780  WRITE_NODE_FIELD(hashclauses);
781 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:328
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outHashPath()

static void _outHashPath ( StringInfo  str,
const HashPath node 
)
static

Definition at line 2171 of file outfuncs.c.

References _outJoinPathInfo(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2172 {
2173  WRITE_NODE_TYPE("HASHPATH");
2174 
2175  _outJoinPathInfo(str, (const JoinPath *) node);
2176 
2177  WRITE_NODE_FIELD(path_hashclauses);
2178  WRITE_INT_FIELD(num_batches);
2179 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1752
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outImportForeignSchemaStmt()

static void _outImportForeignSchemaStmt ( StringInfo  str,
const ImportForeignSchemaStmt node 
)
static

Definition at line 2642 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2643 {
2644  WRITE_NODE_TYPE("IMPORTFOREIGNSCHEMASTMT");
2645 
2646  WRITE_STRING_FIELD(server_name);
2647  WRITE_STRING_FIELD(remote_schema);
2648  WRITE_STRING_FIELD(local_schema);
2650  WRITE_NODE_FIELD(table_list);
2652 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
ImportForeignSchemaType
Definition: parsenodes.h:2295
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIndexElem()

static void _outIndexElem ( StringInfo  str,
const IndexElem node 
)
static

Definition at line 2866 of file outfuncs.c.

References name, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2867 {
2868  WRITE_NODE_TYPE("INDEXELEM");
2869 
2871  WRITE_NODE_FIELD(expr);
2872  WRITE_STRING_FIELD(indexcolname);
2873  WRITE_NODE_FIELD(collation);
2874  WRITE_NODE_FIELD(opclass);
2875  WRITE_ENUM_FIELD(ordering, SortByDir);
2876  WRITE_ENUM_FIELD(nulls_ordering, SortByNulls);
2877 }
SortByDir
Definition: parsenodes.h:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
SortByNulls
Definition: parsenodes.h:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIndexOnlyScan()

static void _outIndexOnlyScan ( StringInfo  str,
const IndexOnlyScan node 
)
static

Definition at line 570 of file outfuncs.c.

References _outScanInfo(), WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

571 {
572  WRITE_NODE_TYPE("INDEXONLYSCAN");
573 
574  _outScanInfo(str, (const Scan *) node);
575 
576  WRITE_OID_FIELD(indexid);
577  WRITE_NODE_FIELD(indexqual);
578  WRITE_NODE_FIELD(indexorderby);
579  WRITE_NODE_FIELD(indextlist);
580  WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
581 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
ScanDirection
Definition: sdir.h:22
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIndexOptInfo()

static void _outIndexOptInfo ( StringInfo  str,
const IndexOptInfo node 
)
static

Definition at line 2309 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

2310 {
2311  WRITE_NODE_TYPE("INDEXOPTINFO");
2312 
2313  /* NB: this isn't a complete set of fields */
2314  WRITE_OID_FIELD(indexoid);
2315  /* Do NOT print rel field, else infinite recursion */
2316  WRITE_UINT_FIELD(pages);
2317  WRITE_FLOAT_FIELD(tuples, "%.0f");
2318  WRITE_INT_FIELD(tree_height);
2319  WRITE_INT_FIELD(ncolumns);
2320  /* array fields aren't really worth the trouble to print */
2321  WRITE_OID_FIELD(relam);
2322  /* indexprs is redundant since we print indextlist */
2323  WRITE_NODE_FIELD(indpred);
2324  WRITE_NODE_FIELD(indextlist);
2325  WRITE_NODE_FIELD(indrestrictinfo);
2326  WRITE_BOOL_FIELD(predOK);
2327  WRITE_BOOL_FIELD(unique);
2328  WRITE_BOOL_FIELD(immediate);
2329  WRITE_BOOL_FIELD(hypothetical);
2330  /* we don't bother with fields copied from the index AM's API struct */
2331 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIndexPath()

static void _outIndexPath ( StringInfo  str,
const IndexPath node 
)
static

Definition at line 1772 of file outfuncs.c.

References _outPathInfo(), WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1773 {
1774  WRITE_NODE_TYPE("INDEXPATH");
1775 
1776  _outPathInfo(str, (const Path *) node);
1777 
1778  WRITE_NODE_FIELD(indexinfo);
1779  WRITE_NODE_FIELD(indexclauses);
1780  WRITE_NODE_FIELD(indexquals);
1781  WRITE_NODE_FIELD(indexqualcols);
1782  WRITE_NODE_FIELD(indexorderbys);
1783  WRITE_NODE_FIELD(indexorderbycols);
1784  WRITE_ENUM_FIELD(indexscandir, ScanDirection);
1785  WRITE_FLOAT_FIELD(indextotalcost, "%.2f");
1786  WRITE_FLOAT_FIELD(indexselectivity, "%.4f");
1787 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
ScanDirection
Definition: sdir.h:22
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIndexScan()

static void _outIndexScan ( StringInfo  str,
const IndexScan node 
)
static

Definition at line 554 of file outfuncs.c.

References _outScanInfo(), WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

555 {
556  WRITE_NODE_TYPE("INDEXSCAN");
557 
558  _outScanInfo(str, (const Scan *) node);
559 
560  WRITE_OID_FIELD(indexid);
561  WRITE_NODE_FIELD(indexqual);
562  WRITE_NODE_FIELD(indexqualorig);
563  WRITE_NODE_FIELD(indexorderby);
564  WRITE_NODE_FIELD(indexorderbyorig);
565  WRITE_NODE_FIELD(indexorderbyops);
566  WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
567 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
ScanDirection
Definition: sdir.h:22
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIndexStmt()

static void _outIndexStmt ( StringInfo  str,
const IndexStmt node 
)
static

Definition at line 2655 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_STRING_FIELD.

Referenced by outNode().

2656 {
2657  WRITE_NODE_TYPE("INDEXSTMT");
2658 
2659  WRITE_STRING_FIELD(idxname);
2660  WRITE_NODE_FIELD(relation);
2661  WRITE_OID_FIELD(relationId);
2662  WRITE_STRING_FIELD(accessMethod);
2663  WRITE_STRING_FIELD(tableSpace);
2664  WRITE_NODE_FIELD(indexParams);
2666  WRITE_NODE_FIELD(whereClause);
2667  WRITE_NODE_FIELD(excludeOpNames);
2668  WRITE_STRING_FIELD(idxcomment);
2669  WRITE_OID_FIELD(indexOid);
2670  WRITE_OID_FIELD(oldNode);
2671  WRITE_BOOL_FIELD(unique);
2672  WRITE_BOOL_FIELD(primary);
2673  WRITE_BOOL_FIELD(isconstraint);
2674  WRITE_BOOL_FIELD(deferrable);
2675  WRITE_BOOL_FIELD(initdeferred);
2676  WRITE_BOOL_FIELD(transformed);
2677  WRITE_BOOL_FIELD(concurrent);
2678  WRITE_BOOL_FIELD(if_not_exists);
2679 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outInferenceElem()

static void _outInferenceElem ( StringInfo  str,
const InferenceElem node 
)
static

Definition at line 1640 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1641 {
1642  WRITE_NODE_TYPE("INFERENCEELEM");
1643 
1644  WRITE_NODE_FIELD(expr);
1645  WRITE_OID_FIELD(infercollid);
1646  WRITE_OID_FIELD(inferopclass);
1647 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outIntoClause()

static void _outIntoClause ( StringInfo  str,
const IntoClause node 
)
static

Definition at line 1073 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

1074 {
1075  WRITE_NODE_TYPE("INTOCLAUSE");
1076 
1077  WRITE_NODE_FIELD(rel);
1078  WRITE_NODE_FIELD(colNames);
1080  WRITE_ENUM_FIELD(onCommit, OnCommitAction);
1081  WRITE_STRING_FIELD(tableSpaceName);
1082  WRITE_NODE_FIELD(viewQuery);
1083  WRITE_BOOL_FIELD(skipData);
1084 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
OnCommitAction
Definition: primnodes.h:47
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outJoin()

static void _outJoin ( StringInfo  str,
const Join node 
)
static

Definition at line 724 of file outfuncs.c.

References _outJoinPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

725 {
726  WRITE_NODE_TYPE("JOIN");
727 
728  _outJoinPlanInfo(str, (const Join *) node);
729 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:328
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outJoinExpr()

static void _outJoinExpr ( StringInfo  str,
const JoinExpr node 
)
static

Definition at line 1672 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1673 {
1674  WRITE_NODE_TYPE("JOINEXPR");
1675 
1676  WRITE_ENUM_FIELD(jointype, JoinType);
1677  WRITE_BOOL_FIELD(isNatural);
1678  WRITE_NODE_FIELD(larg);
1679  WRITE_NODE_FIELD(rarg);
1680  WRITE_NODE_FIELD(usingClause);
1681  WRITE_NODE_FIELD(quals);
1682  WRITE_NODE_FIELD(alias);
1683  WRITE_INT_FIELD(rtindex);
1684 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
JoinType
Definition: nodes.h:677
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outJoinPathInfo()

static void _outJoinPathInfo ( StringInfo  str,
const JoinPath node 
)
static

Definition at line 1752 of file outfuncs.c.

References _outPathInfo(), WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, and WRITE_NODE_FIELD.

Referenced by _outHashPath(), _outMergePath(), and _outNestPath().

1753 {
1754  _outPathInfo(str, (const Path *) node);
1755 
1756  WRITE_ENUM_FIELD(jointype, JoinType);
1757  WRITE_BOOL_FIELD(inner_unique);
1758  WRITE_NODE_FIELD(outerjoinpath);
1759  WRITE_NODE_FIELD(innerjoinpath);
1760  WRITE_NODE_FIELD(joinrestrictinfo);
1761 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
JoinType
Definition: nodes.h:677
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outJoinPlanInfo()

static void _outJoinPlanInfo ( StringInfo  str,
const Join node 
)
static

Definition at line 328 of file outfuncs.c.

References _outPlanInfo(), WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, and WRITE_NODE_FIELD.

Referenced by _outHashJoin(), _outJoin(), _outMergeJoin(), and _outNestLoop().

329 {
330  _outPlanInfo(str, (const Plan *) node);
331 
332  WRITE_ENUM_FIELD(jointype, JoinType);
333  WRITE_BOOL_FIELD(inner_unique);
334  WRITE_NODE_FIELD(joinqual);
335 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
JoinType
Definition: nodes.h:677
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outLimit()

static void _outLimit ( StringInfo  str,
const Limit node 
)
static

Definition at line 977 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

978 {
979  WRITE_NODE_TYPE("LIMIT");
980 
981  _outPlanInfo(str, (const Plan *) node);
982 
983  WRITE_NODE_FIELD(limitOffset);
984  WRITE_NODE_FIELD(limitCount);
985 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outLimitPath()

static void _outLimitPath ( StringInfo  str,
const LimitPath node 
)
static

Definition at line 2126 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2127 {
2128  WRITE_NODE_TYPE("LIMITPATH");
2129 
2130  _outPathInfo(str, (const Path *) node);
2131 
2133  WRITE_NODE_FIELD(limitOffset);
2134  WRITE_NODE_FIELD(limitCount);
2135 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outList()

static void _outList ( StringInfo  str,
const List node 
)
static

Definition at line 167 of file outfuncs.c.

References appendStringInfo(), appendStringInfoChar(), elog, ERROR, IsA, lfirst, lfirst_int, lfirst_oid, lnext, outNode(), and List::type.

Referenced by outNode().

168 {
169  const ListCell *lc;
170 
171  appendStringInfoChar(str, '(');
172 
173  if (IsA(node, IntList))
174  appendStringInfoChar(str, 'i');
175  else if (IsA(node, OidList))
176  appendStringInfoChar(str, 'o');
177 
178  foreach(lc, node)
179  {
180  /*
181  * For the sake of backward compatibility, we emit a slightly
182  * different whitespace format for lists of nodes vs. other types of
183  * lists. XXX: is this necessary?
184  */
185  if (IsA(node, List))
186  {
187  outNode(str, lfirst(lc));
188  if (lnext(lc))
189  appendStringInfoChar(str, ' ');
190  }
191  else if (IsA(node, IntList))
192  appendStringInfo(str, " %d", lfirst_int(lc));
193  else if (IsA(node, OidList))
194  appendStringInfo(str, " %u", lfirst_oid(lc));
195  else
196  elog(ERROR, "unrecognized list node type: %d",
197  (int) node->type);
198  }
199 
200  appendStringInfoChar(str, ')');
201 }
#define IsA(nodeptr, _type_)
Definition: nodes.h:564
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
#define ERROR
Definition: elog.h:43
#define lfirst_int(lc)
Definition: pg_list.h:107
#define lnext(lc)
Definition: pg_list.h:105
void appendStringInfoChar(StringInfo str, char ch)
Definition: stringinfo.c:169
void outNode(StringInfo str, const void *obj)
Definition: outfuncs.c:3624
#define lfirst(lc)
Definition: pg_list.h:106
NodeTag type
Definition: pg_list.h:47
#define elog
Definition: elog.h:219
Definition: pg_list.h:45
#define lfirst_oid(lc)
Definition: pg_list.h:108

◆ _outLockingClause()

static void _outLockingClause ( StringInfo  str,
const LockingClause node 
)
static

Definition at line 2776 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2777 {
2778  WRITE_NODE_TYPE("LOCKINGCLAUSE");
2779 
2780  WRITE_NODE_FIELD(lockedRels);
2782  WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
2783 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
LockClauseStrength
Definition: lockoptions.h:21
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
LockWaitPolicy
Definition: lockoptions.h:36
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outLockRows()

static void _outLockRows ( StringInfo  str,
const LockRows node 
)
static

Definition at line 966 of file outfuncs.c.

References _outPlanInfo(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

967 {
968  WRITE_NODE_TYPE("LOCKROWS");
969 
970  _outPlanInfo(str, (const Plan *) node);
971 
972  WRITE_NODE_FIELD(rowMarks);
973  WRITE_INT_FIELD(epqParam);
974 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outLockRowsPath()

static void _outLockRowsPath ( StringInfo  str,
const LockRowsPath node 
)
static

Definition at line 2092 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2093 {
2094  WRITE_NODE_TYPE("LOCKROWSPATH");
2095 
2096  _outPathInfo(str, (const Path *) node);
2097 
2099  WRITE_NODE_FIELD(rowMarks);
2100  WRITE_INT_FIELD(epqParam);
2101 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMaterial()

static void _outMaterial ( StringInfo  str,
const Material node 
)
static

Definition at line 871 of file outfuncs.c.

References _outPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

872 {
873  WRITE_NODE_TYPE("MATERIAL");
874 
875  _outPlanInfo(str, (const Plan *) node);
876 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outMaterialPath()

static void _outMaterialPath ( StringInfo  str,
const MaterialPath node 
)
static

Definition at line 1900 of file outfuncs.c.

References _outPathInfo(), subpath(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1901 {
1902  WRITE_NODE_TYPE("MATERIALPATH");
1903 
1904  _outPathInfo(str, (const Path *) node);
1905 
1907 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMergeAppend()

static void _outMergeAppend ( StringInfo  str,
const MergeAppend node 
)
static

Definition at line 407 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), booltostr, i, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

408 {
409  int i;
410 
411  WRITE_NODE_TYPE("MERGEAPPEND");
412 
413  _outPlanInfo(str, (const Plan *) node);
414 
415  WRITE_NODE_FIELD(partitioned_rels);
416  WRITE_NODE_FIELD(mergeplans);
417 
418  WRITE_INT_FIELD(numCols);
419 
420  appendStringInfoString(str, " :sortColIdx");
421  for (i = 0; i < node->numCols; i++)
422  appendStringInfo(str, " %d", node->sortColIdx[i]);
423 
424  appendStringInfoString(str, " :sortOperators");
425  for (i = 0; i < node->numCols; i++)
426  appendStringInfo(str, " %u", node->sortOperators[i]);
427 
428  appendStringInfoString(str, " :collations");
429  for (i = 0; i < node->numCols; i++)
430  appendStringInfo(str, " %u", node->collations[i]);
431 
432  appendStringInfoString(str, " :nullsFirst");
433  for (i = 0; i < node->numCols; i++)
434  appendStringInfo(str, " %s", booltostr(node->nullsFirst[i]));
435 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
Oid * collations
Definition: plannodes.h:270
#define booltostr(x)
Definition: outfuncs.c:109
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AttrNumber * sortColIdx
Definition: plannodes.h:268
bool * nullsFirst
Definition: plannodes.h:271
int i
Oid * sortOperators
Definition: plannodes.h:269
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMergeAppendPath()

static void _outMergeAppendPath ( StringInfo  str,
const MergeAppendPath node 
)
static

Definition at line 1878 of file outfuncs.c.

References _outPathInfo(), WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1879 {
1880  WRITE_NODE_TYPE("MERGEAPPENDPATH");
1881 
1882  _outPathInfo(str, (const Path *) node);
1883 
1884  WRITE_NODE_FIELD(partitioned_rels);
1885  WRITE_NODE_FIELD(subpaths);
1886  WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
1887 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMergeJoin()

static void _outMergeJoin ( StringInfo  str,
const MergeJoin node 
)
static

Definition at line 742 of file outfuncs.c.

References _outJoinPlanInfo(), appendStringInfo(), appendStringInfoString(), booltostr, i, list_length(), WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

743 {
744  int numCols;
745  int i;
746 
747  WRITE_NODE_TYPE("MERGEJOIN");
748 
749  _outJoinPlanInfo(str, (const Join *) node);
750 
751  WRITE_BOOL_FIELD(skip_mark_restore);
752  WRITE_NODE_FIELD(mergeclauses);
753 
754  numCols = list_length(node->mergeclauses);
755 
756  appendStringInfoString(str, " :mergeFamilies");
757  for (i = 0; i < numCols; i++)
758  appendStringInfo(str, " %u", node->mergeFamilies[i]);
759 
760  appendStringInfoString(str, " :mergeCollations");
761  for (i = 0; i < numCols; i++)
762  appendStringInfo(str, " %u", node->mergeCollations[i]);
763 
764  appendStringInfoString(str, " :mergeStrategies");
765  for (i = 0; i < numCols; i++)
766  appendStringInfo(str, " %d", node->mergeStrategies[i]);
767 
768  appendStringInfoString(str, " :mergeNullsFirst");
769  for (i = 0; i < numCols; i++)
770  appendStringInfo(str, " %s", booltostr(node->mergeNullsFirst[i]));
771 }
#define booltostr(x)
Definition: outfuncs.c:109
List * mergeclauses
Definition: plannodes.h:713
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:328
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
Oid * mergeFamilies
Definition: plannodes.h:715
Oid * mergeCollations
Definition: plannodes.h:716
bool * mergeNullsFirst
Definition: plannodes.h:718
int * mergeStrategies
Definition: plannodes.h:717
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static int list_length(const List *l)
Definition: pg_list.h:89
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMergePath()

static void _outMergePath ( StringInfo  str,
const MergePath node 
)
static

Definition at line 2157 of file outfuncs.c.

References _outJoinPathInfo(), WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2158 {
2159  WRITE_NODE_TYPE("MERGEPATH");
2160 
2161  _outJoinPathInfo(str, (const JoinPath *) node);
2162 
2163  WRITE_NODE_FIELD(path_mergeclauses);
2164  WRITE_NODE_FIELD(outersortkeys);
2165  WRITE_NODE_FIELD(innersortkeys);
2166  WRITE_BOOL_FIELD(skip_mark_restore);
2167  WRITE_BOOL_FIELD(materialize_inner);
2168 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1752
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMinMaxAggInfo()

static void _outMinMaxAggInfo ( StringInfo  str,
const MinMaxAggInfo node 
)
static

Definition at line 2554 of file outfuncs.c.

References WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

2555 {
2556  WRITE_NODE_TYPE("MINMAXAGGINFO");
2557 
2558  WRITE_OID_FIELD(aggfnoid);
2559  WRITE_OID_FIELD(aggsortop);
2560  WRITE_NODE_FIELD(target);
2561  /* We intentionally omit subroot --- too large, not interesting enough */
2562  WRITE_NODE_FIELD(path);
2563  WRITE_FLOAT_FIELD(pathcost, "%.2f");
2564  WRITE_NODE_FIELD(param);
2565 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMinMaxAggPath()

static void _outMinMaxAggPath ( StringInfo  str,
const MinMaxAggPath node 
)
static

Definition at line 2039 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2040 {
2041  WRITE_NODE_TYPE("MINMAXAGGPATH");
2042 
2043  _outPathInfo(str, (const Path *) node);
2044 
2045  WRITE_NODE_FIELD(mmaggregates);
2046  WRITE_NODE_FIELD(quals);
2047 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMinMaxExpr()

static void _outMinMaxExpr ( StringInfo  str,
const MinMaxExpr node 
)
static

Definition at line 1525 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1526 {
1527  WRITE_NODE_TYPE("MINMAX");
1528 
1529  WRITE_OID_FIELD(minmaxtype);
1530  WRITE_OID_FIELD(minmaxcollid);
1531  WRITE_OID_FIELD(inputcollid);
1534  WRITE_LOCATION_FIELD(location);
1535 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
MinMaxOp
Definition: primnodes.h:1061
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outModifyTable()

static void _outModifyTable ( StringInfo  str,
const ModifyTable node 
)
static

Definition at line 365 of file outfuncs.c.

References _outPlanInfo(), WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

366 {
367  WRITE_NODE_TYPE("MODIFYTABLE");
368 
369  _outPlanInfo(str, (const Plan *) node);
370 
371  WRITE_ENUM_FIELD(operation, CmdType);
372  WRITE_BOOL_FIELD(canSetTag);
373  WRITE_UINT_FIELD(nominalRelation);
374  WRITE_NODE_FIELD(partitioned_rels);
375  WRITE_BOOL_FIELD(partColsUpdated);
376  WRITE_NODE_FIELD(resultRelations);
377  WRITE_INT_FIELD(resultRelIndex);
378  WRITE_INT_FIELD(rootResultRelIndex);
379  WRITE_NODE_FIELD(plans);
380  WRITE_NODE_FIELD(withCheckOptionLists);
381  WRITE_NODE_FIELD(returningLists);
382  WRITE_NODE_FIELD(fdwPrivLists);
383  WRITE_BITMAPSET_FIELD(fdwDirectModifyPlans);
384  WRITE_NODE_FIELD(rowMarks);
385  WRITE_INT_FIELD(epqParam);
386  WRITE_ENUM_FIELD(onConflictAction, OnConflictAction);
387  WRITE_NODE_FIELD(arbiterIndexes);
388  WRITE_NODE_FIELD(onConflictSet);
389  WRITE_NODE_FIELD(onConflictWhere);
390  WRITE_UINT_FIELD(exclRelRTI);
391  WRITE_NODE_FIELD(exclRelTlist);
392 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:295
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
OnConflictAction
Definition: nodes.h:803
CmdType
Definition: nodes.h:653
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outModifyTablePath()

static void _outModifyTablePath ( StringInfo  str,
const ModifyTablePath node 
)
static

Definition at line 2104 of file outfuncs.c.

References _outPathInfo(), WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2105 {
2106  WRITE_NODE_TYPE("MODIFYTABLEPATH");
2107 
2108  _outPathInfo(str, (const Path *) node);
2109 
2110  WRITE_ENUM_FIELD(operation, CmdType);
2111  WRITE_BOOL_FIELD(canSetTag);
2112  WRITE_UINT_FIELD(nominalRelation);
2113  WRITE_NODE_FIELD(partitioned_rels);
2114  WRITE_BOOL_FIELD(partColsUpdated);
2115  WRITE_NODE_FIELD(resultRelations);
2116  WRITE_NODE_FIELD(subpaths);
2117  WRITE_NODE_FIELD(subroots);
2118  WRITE_NODE_FIELD(withCheckOptionLists);
2119  WRITE_NODE_FIELD(returningLists);
2120  WRITE_NODE_FIELD(rowMarks);
2121  WRITE_NODE_FIELD(onconflict);
2122  WRITE_INT_FIELD(epqParam);
2123 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727
CmdType
Definition: nodes.h:653
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outMultiAssignRef()

static void _outMultiAssignRef ( StringInfo  str,
const MultiAssignRef node 
)
static

Definition at line 3346 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3347 {
3348  WRITE_NODE_TYPE("MULTIASSIGNREF");
3349 
3350  WRITE_NODE_FIELD(source);
3351  WRITE_INT_FIELD(colno);
3352  WRITE_INT_FIELD(ncolumns);
3353 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outNamedArgExpr()

static void _outNamedArgExpr ( StringInfo  str,
const NamedArgExpr node 
)
static

Definition at line 1220 of file outfuncs.c.

References arg, name, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

1221 {
1222  WRITE_NODE_TYPE("NAMEDARGEXPR");
1223 
1226  WRITE_INT_FIELD(argnumber);
1227  WRITE_LOCATION_FIELD(location);
1228 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outNamedTuplestoreScan()

static void _outNamedTuplestoreScan ( StringInfo  str,
const NamedTuplestoreScan node 
)
static

Definition at line 669 of file outfuncs.c.

References _outScanInfo(), WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

670 {
671  WRITE_NODE_TYPE("NAMEDTUPLESTORESCAN");
672 
673  _outScanInfo(str, (const Scan *) node);
674 
675  WRITE_STRING_FIELD(enrname);
676 }
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:317
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90

◆ _outNestLoop()

static void _outNestLoop ( StringInfo  str,
const NestLoop node 
)
static

Definition at line 732 of file outfuncs.c.

References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

733 {
734  WRITE_NODE_TYPE("NESTLOOP");
735 
736  _outJoinPlanInfo(str, (const Join *) node);
737 
738  WRITE_NODE_FIELD(nestParams);
739 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:328
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outNestLoopParam()

static void _outNestLoopParam ( StringInfo  str,
const NestLoopParam node 
)
static

Definition at line 988 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

989 {
990  WRITE_NODE_TYPE("NESTLOOPPARAM");
991 
992  WRITE_INT_FIELD(paramno);
993  WRITE_NODE_FIELD(paramval);
994 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outNestPath()

static void _outNestPath ( StringInfo  str,
const NestPath node 
)
static

Definition at line 2149 of file outfuncs.c.

References _outJoinPathInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

2150 {
2151  WRITE_NODE_TYPE("NESTPATH");
2152 
2153  _outJoinPathInfo(str, (const JoinPath *) node);
2154 }
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1752
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outNextValueExpr()

static void _outNextValueExpr ( StringInfo  str,
const NextValueExpr node 
)
static

Definition at line 1631 of file outfuncs.c.

References WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1632 {
1633  WRITE_NODE_TYPE("NEXTVALUEEXPR");
1634 
1635  WRITE_OID_FIELD(seqid);
1636  WRITE_OID_FIELD(typeId);
1637 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outNotifyStmt()

static void _outNotifyStmt ( StringInfo  str,
const NotifyStmt node 
)
static

Definition at line 2694 of file outfuncs.c.

References WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2695 {
2696  WRITE_NODE_TYPE("NOTIFY");
2697 
2698  WRITE_STRING_FIELD(conditionname);
2699  WRITE_STRING_FIELD(payload);
2700 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90

◆ _outNullIfExpr()

static void _outNullIfExpr ( StringInfo  str,
const NullIfExpr node 
)
static

Definition at line 1261 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1262 {
1263  WRITE_NODE_TYPE("NULLIFEXPR");
1264 
1265  WRITE_OID_FIELD(opno);
1266  WRITE_OID_FIELD(opfuncid);
1267  WRITE_OID_FIELD(opresulttype);
1268  WRITE_BOOL_FIELD(opretset);
1269  WRITE_OID_FIELD(opcollid);
1270  WRITE_OID_FIELD(inputcollid);
1272  WRITE_LOCATION_FIELD(location);
1273 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outNullTest()

static void _outNullTest ( StringInfo  str,
const NullTest node 
)
static

Definition at line 1565 of file outfuncs.c.

References arg, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1566 {
1567  WRITE_NODE_TYPE("NULLTEST");
1568 
1570  WRITE_ENUM_FIELD(nulltesttype, NullTestType);
1571  WRITE_BOOL_FIELD(argisrow);
1572  WRITE_LOCATION_FIELD(location);
1573 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
NullTestType
Definition: primnodes.h:1179
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outOnConflictExpr()

static void _outOnConflictExpr ( StringInfo  str,
const OnConflictExpr node 
)
static

Definition at line 1696 of file outfuncs.c.

References generate_unaccent_rules::action, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1697 {
1698  WRITE_NODE_TYPE("ONCONFLICTEXPR");
1699 
1701  WRITE_NODE_FIELD(arbiterElems);
1702  WRITE_NODE_FIELD(arbiterWhere);
1703  WRITE_OID_FIELD(constraint);
1704  WRITE_NODE_FIELD(onConflictSet);
1705  WRITE_NODE_FIELD(onConflictWhere);
1706  WRITE_INT_FIELD(exclRelIndex);
1707  WRITE_NODE_FIELD(exclRelTlist);
1708 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
OnConflictAction
Definition: nodes.h:803
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outOpExpr()

static void _outOpExpr ( StringInfo  str,
const OpExpr node 
)
static

Definition at line 1231 of file outfuncs.c.

References generate_unaccent_rules::args, WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1232 {
1233  WRITE_NODE_TYPE("OPEXPR");
1234 
1235  WRITE_OID_FIELD(opno);
1236  WRITE_OID_FIELD(opfuncid);
1237  WRITE_OID_FIELD(opresulttype);
1238  WRITE_BOOL_FIELD(opretset);
1239  WRITE_OID_FIELD(opcollid);
1240  WRITE_OID_FIELD(inputcollid);
1242  WRITE_LOCATION_FIELD(location);
1243 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outParam()

static void _outParam ( StringInfo  str,
const Param node 
)
static

Definition at line 1123 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1124 {
1125  WRITE_NODE_TYPE("PARAM");
1126 
1127  WRITE_ENUM_FIELD(paramkind, ParamKind);
1128  WRITE_INT_FIELD(paramid);
1129  WRITE_OID_FIELD(paramtype);
1130  WRITE_INT_FIELD(paramtypmod);
1131  WRITE_OID_FIELD(paramcollid);
1132  WRITE_LOCATION_FIELD(location);
1133 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
ParamKind
Definition: primnodes.h:233
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outParamPathInfo()

static void _outParamPathInfo ( StringInfo  str,
const ParamPathInfo node 
)
static

Definition at line 2447 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2448 {
2449  WRITE_NODE_TYPE("PARAMPATHINFO");
2450 
2451  WRITE_BITMAPSET_FIELD(ppi_req_outer);
2452  WRITE_FLOAT_FIELD(ppi_rows, "%.0f");
2453  WRITE_NODE_FIELD(ppi_clauses);
2454 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outParamRef()

static void _outParamRef ( StringInfo  str,
const ParamRef node 
)
static

Definition at line 3282 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3283 {
3284  WRITE_NODE_TYPE("PARAMREF");
3285 
3286  WRITE_INT_FIELD(number);
3287  WRITE_LOCATION_FIELD(location);
3288 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46

◆ _outPartitionBoundSpec()

static void _outPartitionBoundSpec ( StringInfo  str,
const PartitionBoundSpec node 
)
static

Definition at line 3595 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_CHAR_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3596 {
3597  WRITE_NODE_TYPE("PARTITIONBOUNDSPEC");
3598 
3599  WRITE_CHAR_FIELD(strategy);
3600  WRITE_BOOL_FIELD(is_default);
3601  WRITE_INT_FIELD(modulus);
3602  WRITE_INT_FIELD(remainder);
3603  WRITE_NODE_FIELD(listdatums);
3604  WRITE_NODE_FIELD(lowerdatums);
3605  WRITE_NODE_FIELD(upperdatums);
3606  WRITE_LOCATION_FIELD(location);
3607 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPartitionedChildRelInfo()

static void _outPartitionedChildRelInfo ( StringInfo  str,
const PartitionedChildRelInfo node 
)
static

Definition at line 2531 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2532 {
2533  WRITE_NODE_TYPE("PARTITIONEDCHILDRELINFO");
2534 
2535  WRITE_UINT_FIELD(parent_relid);
2536  WRITE_NODE_FIELD(child_rels);
2537  WRITE_BOOL_FIELD(part_cols_updated);
2538 }
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPartitionElem()

static void _outPartitionElem ( StringInfo  str,
const PartitionElem node 
)
static

Definition at line 3573 of file outfuncs.c.

References name, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

3574 {
3575  WRITE_NODE_TYPE("PARTITIONELEM");
3576 
3578  WRITE_NODE_FIELD(expr);
3579  WRITE_NODE_FIELD(collation);
3580  WRITE_NODE_FIELD(opclass);
3581  WRITE_LOCATION_FIELD(location);
3582 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPartitionRangeDatum()

static void _outPartitionRangeDatum ( StringInfo  str,
const PartitionRangeDatum node 
)
static

Definition at line 3610 of file outfuncs.c.

References value, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3611 {
3612  WRITE_NODE_TYPE("PARTITIONRANGEDATUM");
3613 
3616  WRITE_LOCATION_FIELD(location);
3617 }
static struct @130 value
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
PartitionRangeDatumKind
Definition: parsenodes.h:831
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPartitionSpec()

static void _outPartitionSpec ( StringInfo  str,
const PartitionSpec node 
)
static

Definition at line 3585 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

3586 {
3587  WRITE_NODE_TYPE("PARTITIONSPEC");
3588 
3589  WRITE_STRING_FIELD(strategy);
3590  WRITE_NODE_FIELD(partParams);
3591  WRITE_LOCATION_FIELD(location);
3592 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:95
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPath()

static void _outPath ( StringInfo  str,
const Path node 
)
static

Definition at line 1764 of file outfuncs.c.

References _outPathInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

1765 {
1766  WRITE_NODE_TYPE("PATH");
1767 
1768  _outPathInfo(str, (const Path *) node);
1769 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1727

◆ _outPathInfo()

static void _outPathInfo ( StringInfo  str,
const Path node 
)
static

Definition at line 1727 of file outfuncs.c.

References appendStringInfoString(), outBitmapset(), Path::param_info, Path::parent, Path::pathtarget, ParamPathInfo::ppi_req_outer, RelOptInfo::relids, RelOptInfo::reltarget, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, and WRITE_NODE_FIELD.

Referenced by _outAggPath(), _outAppendPath(), _outBitmapAndPath(), _outBitmapHeapPath(), _outBitmapOrPath(), _outCustomPath(), _outForeignPath(), _outGatherMergePath(), _outGatherPath(), _outGroupingSetsPath(), _outGroupPath(), _outIndexPath(), _outJoinPathInfo(), _outLimitPath(), _outLockRowsPath(), _outMaterialPath(), _outMergeAppendPath(), _outMinMaxAggPath(), _outModifyTablePath(), _outPath(), _outProjectionPath(), _outProjectSetPath(), _outRecursiveUnionPath(), _outResultPath(), _outSetOpPath(), _outSortPath(), _outSubqueryScanPath(), _outTidPath(), _outUniquePath(), _outUpperUniquePath(), and _outWindowAggPath().

1728 {
1729  WRITE_ENUM_FIELD(pathtype, NodeTag);
1730  appendStringInfoString(str, " :parent_relids ");
1731  outBitmapset(str, node->parent->relids);
1732  if (node->pathtarget != node->parent->reltarget)
1733  WRITE_NODE_FIELD(pathtarget);
1734  appendStringInfoString(str, " :required_outer ");
1735  if (node->param_info)
1736  outBitmapset(str, node->param_info->ppi_req_outer);
1737  else
1738  outBitmapset(str, NULL);
1739  WRITE_BOOL_FIELD(parallel_aware);
1740  WRITE_BOOL_FIELD(parallel_safe);
1741  WRITE_INT_FIELD(parallel_workers);
1742  WRITE_FLOAT_FIELD(rows, "%.0f");
1743  WRITE_FLOAT_FIELD(startup_cost, "%.2f");
1744  WRITE_FLOAT_FIELD(total_cost, "%.2f");
1745  WRITE_NODE_FIELD(pathkeys);
1746 }
PathTarget * pathtarget
Definition: relation.h:1047
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:76
ParamPathInfo * param_info
Definition: relation.h:1049
NodeTag
Definition: nodes.h:26
RelOptInfo * parent
Definition: relation.h:1046
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
Relids relids
Definition: relation.h:585
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
void outBitmapset(StringInfo str, const Bitmapset *bms)
Definition: outfuncs.c:210
Relids ppi_req_outer
Definition: relation.h:1005
struct PathTarget * reltarget
Definition: relation.h:596
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPathKey()

static void _outPathKey ( StringInfo  str,
const PathKey node 
)
static

Definition at line 2417 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

2418 {
2419  WRITE_NODE_TYPE("PATHKEY");
2420 
2421  WRITE_NODE_FIELD(pk_eclass);
2422  WRITE_OID_FIELD(pk_opfamily);
2423  WRITE_INT_FIELD(pk_strategy);
2424  WRITE_BOOL_FIELD(pk_nulls_first);
2425 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:63
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPathTarget()

static void _outPathTarget ( StringInfo  str,
const PathTarget node 
)
static

Definition at line 2428 of file outfuncs.c.

References appendStringInfo(), appendStringInfoString(), PathTarget::exprs, i, list_length(), PathTarget::sortgrouprefs, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2429 {
2430  WRITE_NODE_TYPE("PATHTARGET");
2431 
2432  WRITE_NODE_FIELD(exprs);
2433  if (node->sortgrouprefs)
2434  {
2435  int i;
2436 
2437  appendStringInfoString(str, " :sortgrouprefs");
2438  for (i = 0; i < list_length(node->exprs); i++)
2439  appendStringInfo(str, " %u", node->sortgrouprefs[i]);
2440  }
2441  WRITE_FLOAT_FIELD(cost.startup, "%.2f");
2442  WRITE_FLOAT_FIELD(cost.per_tuple, "%.2f");
2443  WRITE_INT_FIELD(width);
2444 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:78
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
Index * sortgrouprefs
Definition: relation.h:977
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:81
List * exprs
Definition: relation.h:976
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static int list_length(const List *l)
Definition: pg_list.h:89
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPlaceHolderInfo()

static void _outPlaceHolderInfo ( StringInfo  str,
const PlaceHolderInfo node 
)
static

Definition at line 2541 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2542 {
2543  WRITE_NODE_TYPE("PLACEHOLDERINFO");
2544 
2545  WRITE_UINT_FIELD(phid);
2546  WRITE_NODE_FIELD(ph_var);
2547  WRITE_BITMAPSET_FIELD(ph_eval_at);
2548  WRITE_BITMAPSET_FIELD(ph_lateral);
2549  WRITE_BITMAPSET_FIELD(ph_needed);
2550  WRITE_INT_FIELD(ph_width);
2551 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:104
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:99

◆ _outPlaceHolderVar()

static void _outPlaceHolderVar ( StringInfo  str,
const PlaceHolderVar node 
)
static

Definition at line 2489 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().