PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
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_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

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

Definition at line 104 of file outfuncs.c.

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

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

Definition at line 80 of file outfuncs.c.

Referenced by _outA_Indices(), _outAggref(), _outArrayCoerceExpr(), _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(), _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(), _outWindowClause(), _outWindowFunc(), _outWithCheckOption(), and _outWithClause().

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

Definition at line 66 of file outfuncs.c.

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

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

Definition at line 62 of file outfuncs.c.

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

#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
void outNode(StringInfo str, const void *obj)
Definition: outfuncs.c:3595
#define CppAsString(identifier)
Definition: c.h:161

Definition at line 94 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().

#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().

Function Documentation

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

Definition at line 3300 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3301 {
3302  WRITE_NODE_TYPE("A_ARRAYEXPR");
3303 
3304  WRITE_NODE_FIELD(elements);
3305  WRITE_LOCATION_FIELD(location);
3306 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outA_Indices ( StringInfo  str,
const A_Indices node 
)
static

Definition at line 3281 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3282 {
3283  WRITE_NODE_TYPE("A_INDICES");
3284 
3285  WRITE_BOOL_FIELD(is_slice);
3286  WRITE_NODE_FIELD(lidx);
3287  WRITE_NODE_FIELD(uidx);
3288 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outA_Indirection ( StringInfo  str,
const A_Indirection node 
)
static

Definition at line 3291 of file outfuncs.c.

References arg, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3292 {
3293  WRITE_NODE_TYPE("A_INDIRECTION");
3294 
3296  WRITE_NODE_FIELD(indirection);
3297 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outA_Star ( StringInfo  str,
const A_Star node 
)
static

Definition at line 3275 of file outfuncs.c.

References WRITE_NODE_TYPE.

Referenced by outNode().

3276 {
3277  WRITE_NODE_TYPE("A_STAR");
3278 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outAConst ( StringInfo  str,
const A_Const node 
)
static

Definition at line 3265 of file outfuncs.c.

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

Referenced by outNode().

3266 {
3267  WRITE_NODE_TYPE("A_CONST");
3268 
3269  appendStringInfoString(str, " :val ");
3270  _outValue(str, &(node->val));
3271  WRITE_LOCATION_FIELD(location);
3272 }
static void _outValue(StringInfo str, const Value *value)
Definition: outfuncs.c:3206
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
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
static void _outAExpr ( StringInfo  str,
const A_Expr node 
)
static

Definition at line 3124 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().

3125 {
3126  WRITE_NODE_TYPE("AEXPR");
3127 
3128  switch (node->kind)
3129  {
3130  case AEXPR_OP:
3131  appendStringInfoChar(str, ' ');
3133  break;
3134  case AEXPR_OP_ANY:
3135  appendStringInfoChar(str, ' ');
3137  appendStringInfoString(str, " ANY ");
3138  break;
3139  case AEXPR_OP_ALL:
3140  appendStringInfoChar(str, ' ');
3142  appendStringInfoString(str, " ALL ");
3143  break;
3144  case AEXPR_DISTINCT:
3145  appendStringInfoString(str, " DISTINCT ");
3147  break;
3148  case AEXPR_NOT_DISTINCT:
3149  appendStringInfoString(str, " NOT_DISTINCT ");
3151  break;
3152  case AEXPR_NULLIF:
3153  appendStringInfoString(str, " NULLIF ");
3155  break;
3156  case AEXPR_OF:
3157  appendStringInfoString(str, " OF ");
3159  break;
3160  case AEXPR_IN:
3161  appendStringInfoString(str, " IN ");
3163  break;
3164  case AEXPR_LIKE:
3165  appendStringInfoString(str, " LIKE ");
3167  break;
3168  case AEXPR_ILIKE:
3169  appendStringInfoString(str, " ILIKE ");
3171  break;
3172  case AEXPR_SIMILAR:
3173  appendStringInfoString(str, " SIMILAR ");
3175  break;
3176  case AEXPR_BETWEEN:
3177  appendStringInfoString(str, " BETWEEN ");
3179  break;
3180  case AEXPR_NOT_BETWEEN:
3181  appendStringInfoString(str, " NOT_BETWEEN ");
3183  break;
3184  case AEXPR_BETWEEN_SYM:
3185  appendStringInfoString(str, " BETWEEN_SYM ");
3187  break;
3188  case AEXPR_NOT_BETWEEN_SYM:
3189  appendStringInfoString(str, " NOT_BETWEEN_SYM ");
3191  break;
3192  case AEXPR_PAREN:
3193  appendStringInfoString(str, " PAREN");
3194  break;
3195  default:
3196  appendStringInfoString(str, " ??");
3197  break;
3198  }
3199 
3200  WRITE_NODE_FIELD(lexpr);
3201  WRITE_NODE_FIELD(rexpr);
3202  WRITE_LOCATION_FIELD(location);
3203 }
A_Expr_Kind kind
Definition: parsenodes.h:274
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
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:94
static void _outAgg ( StringInfo  str,
const Agg node 
)
static

Definition at line 772 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), Agg::grpColIdx, Agg::grpOperators, i, Agg::numCols, WRITE_BITMAPSET_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LONG_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

773 {
774  int i;
775 
776  WRITE_NODE_TYPE("AGG");
777 
778  _outPlanInfo(str, (const Plan *) node);
779 
780  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
781  WRITE_ENUM_FIELD(aggsplit, AggSplit);
782  WRITE_INT_FIELD(numCols);
783 
784  appendStringInfoString(str, " :grpColIdx");
785  for (i = 0; i < node->numCols; i++)
786  appendStringInfo(str, " %d", node->grpColIdx[i]);
787 
788  appendStringInfoString(str, " :grpOperators");
789  for (i = 0; i < node->numCols; i++)
790  appendStringInfo(str, " %u", node->grpOperators[i]);
791 
792  WRITE_LONG_FIELD(numGroups);
793  WRITE_BITMAPSET_FIELD(aggParams);
794  WRITE_NODE_FIELD(groupingSets);
795  WRITE_NODE_FIELD(chain);
796 }
int numCols
Definition: plannodes.h:785
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
AttrNumber * grpColIdx
Definition: plannodes.h:786
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_LONG_FIELD(fldname)
Definition: outfuncs.c:62
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
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:757
AggStrategy
Definition: nodes.h:735
Oid * grpOperators
Definition: plannodes.h:787
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAggPath ( StringInfo  str,
const AggPath node 
)
static

Definition at line 1972 of file outfuncs.c.

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

Referenced by outNode().

1973 {
1974  WRITE_NODE_TYPE("AGGPATH");
1975 
1976  _outPathInfo(str, (const Path *) node);
1977 
1979  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
1980  WRITE_ENUM_FIELD(aggsplit, AggSplit);
1981  WRITE_FLOAT_FIELD(numGroups, "%.0f");
1982  WRITE_NODE_FIELD(groupClause);
1983  WRITE_NODE_FIELD(qual);
1984 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AggSplit
Definition: nodes.h:757
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
AggStrategy
Definition: nodes.h:735
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAggref ( StringInfo  str,
const Aggref node 
)
static

Definition at line 1118 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().

1119 {
1120  WRITE_NODE_TYPE("AGGREF");
1121 
1122  WRITE_OID_FIELD(aggfnoid);
1123  WRITE_OID_FIELD(aggtype);
1124  WRITE_OID_FIELD(aggcollid);
1125  WRITE_OID_FIELD(inputcollid);
1126  WRITE_OID_FIELD(aggtranstype);
1127  WRITE_NODE_FIELD(aggargtypes);
1128  WRITE_NODE_FIELD(aggdirectargs);
1130  WRITE_NODE_FIELD(aggorder);
1131  WRITE_NODE_FIELD(aggdistinct);
1132  WRITE_NODE_FIELD(aggfilter);
1133  WRITE_BOOL_FIELD(aggstar);
1134  WRITE_BOOL_FIELD(aggvariadic);
1135  WRITE_CHAR_FIELD(aggkind);
1136  WRITE_UINT_FIELD(agglevelsup);
1137  WRITE_ENUM_FIELD(aggsplit, AggSplit);
1138  WRITE_LOCATION_FIELD(location);
1139 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:66
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
AggSplit
Definition: nodes.h:757
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAlias ( StringInfo  str,
const Alias node 
)
static

Definition at line 1009 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

1010 {
1011  WRITE_NODE_TYPE("ALIAS");
1012 
1013  WRITE_STRING_FIELD(aliasname);
1014  WRITE_NODE_FIELD(colnames);
1015 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAlternativeSubPlan ( StringInfo  str,
const AlternativeSubPlan node 
)
static

Definition at line 1334 of file outfuncs.c.

References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1335 {
1336  WRITE_NODE_TYPE("ALTERNATIVESUBPLAN");
1337 
1338  WRITE_NODE_FIELD(subplans);
1339 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAppend ( StringInfo  str,
const Append node 
)
static

Definition at line 389 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

390 {
391  WRITE_NODE_TYPE("APPEND");
392 
393  _outPlanInfo(str, (const Plan *) node);
394 
395  WRITE_NODE_FIELD(partitioned_rels);
396  WRITE_NODE_FIELD(appendplans);
397 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAppendPath ( StringInfo  str,
const AppendPath node 
)
static

Definition at line 1850 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1851 {
1852  WRITE_NODE_TYPE("APPENDPATH");
1853 
1854  _outPathInfo(str, (const Path *) node);
1855 
1856  WRITE_NODE_FIELD(partitioned_rels);
1857  WRITE_NODE_FIELD(subpaths);
1858 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outAppendRelInfo ( StringInfo  str,
const AppendRelInfo node 
)
static

Definition at line 2500 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

2501 {
2502  WRITE_NODE_TYPE("APPENDRELINFO");
2503 
2504  WRITE_UINT_FIELD(parent_relid);
2505  WRITE_UINT_FIELD(child_relid);
2506  WRITE_OID_FIELD(parent_reltype);
2507  WRITE_OID_FIELD(child_reltype);
2508  WRITE_NODE_FIELD(translated_vars);
2509  WRITE_OID_FIELD(parent_reloid);
2510 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#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:94
static void _outArrayCoerceExpr ( StringInfo  str,
const ArrayCoerceExpr node 
)
static

Definition at line 1390 of file outfuncs.c.

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

Referenced by outNode().

1391 {
1392  WRITE_NODE_TYPE("ARRAYCOERCEEXPR");
1393 
1395  WRITE_OID_FIELD(elemfuncid);
1396  WRITE_OID_FIELD(resulttype);
1397  WRITE_INT_FIELD(resulttypmod);
1398  WRITE_OID_FIELD(resultcollid);
1399  WRITE_BOOL_FIELD(isExplicit);
1400  WRITE_ENUM_FIELD(coerceformat, CoercionForm);
1401  WRITE_LOCATION_FIELD(location);
1402 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outArrayExpr ( StringInfo  str,
const ArrayExpr node 
)
static

Definition at line 1459 of file outfuncs.c.

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

Referenced by outNode().

1460 {
1461  WRITE_NODE_TYPE("ARRAY");
1462 
1463  WRITE_OID_FIELD(array_typeid);
1464  WRITE_OID_FIELD(array_collid);
1465  WRITE_OID_FIELD(element_typeid);
1466  WRITE_NODE_FIELD(elements);
1467  WRITE_BOOL_FIELD(multidims);
1468  WRITE_LOCATION_FIELD(location);
1469 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outArrayRef ( StringInfo  str,
const ArrayRef node 
)
static

Definition at line 1171 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1172 {
1173  WRITE_NODE_TYPE("ARRAYREF");
1174 
1175  WRITE_OID_FIELD(refarraytype);
1176  WRITE_OID_FIELD(refelemtype);
1177  WRITE_INT_FIELD(reftypmod);
1178  WRITE_OID_FIELD(refcollid);
1179  WRITE_NODE_FIELD(refupperindexpr);
1180  WRITE_NODE_FIELD(reflowerindexpr);
1181  WRITE_NODE_FIELD(refexpr);
1182  WRITE_NODE_FIELD(refassgnexpr);
1183 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapAnd ( StringInfo  str,
const BitmapAnd node 
)
static

Definition at line 454 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

455 {
456  WRITE_NODE_TYPE("BITMAPAND");
457 
458  _outPlanInfo(str, (const Plan *) node);
459 
460  WRITE_NODE_FIELD(bitmapplans);
461 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapAndPath ( StringInfo  str,
const BitmapAndPath node 
)
static

Definition at line 1783 of file outfuncs.c.

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

Referenced by outNode().

1784 {
1785  WRITE_NODE_TYPE("BITMAPANDPATH");
1786 
1787  _outPathInfo(str, (const Path *) node);
1788 
1789  WRITE_NODE_FIELD(bitmapquals);
1790  WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
1791 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapHeapPath ( StringInfo  str,
const BitmapHeapPath node 
)
static

Definition at line 1773 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1774 {
1775  WRITE_NODE_TYPE("BITMAPHEAPPATH");
1776 
1777  _outPathInfo(str, (const Path *) node);
1778 
1779  WRITE_NODE_FIELD(bitmapqual);
1780 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapHeapScan ( StringInfo  str,
const BitmapHeapScan node 
)
static

Definition at line 585 of file outfuncs.c.

References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

586 {
587  WRITE_NODE_TYPE("BITMAPHEAPSCAN");
588 
589  _outScanInfo(str, (const Scan *) node);
590 
591  WRITE_NODE_FIELD(bitmapqualorig);
592 }
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapIndexScan ( StringInfo  str,
const BitmapIndexScan node 
)
static

Definition at line 572 of file outfuncs.c.

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

Referenced by outNode().

573 {
574  WRITE_NODE_TYPE("BITMAPINDEXSCAN");
575 
576  _outScanInfo(str, (const Scan *) node);
577 
578  WRITE_OID_FIELD(indexid);
579  WRITE_BOOL_FIELD(isshared);
580  WRITE_NODE_FIELD(indexqual);
581  WRITE_NODE_FIELD(indexqualorig);
582 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapOr ( StringInfo  str,
const BitmapOr node 
)
static

Definition at line 464 of file outfuncs.c.

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

Referenced by outNode().

465 {
466  WRITE_NODE_TYPE("BITMAPOR");
467 
468  _outPlanInfo(str, (const Plan *) node);
469 
470  WRITE_BOOL_FIELD(isshared);
471  WRITE_NODE_FIELD(bitmapplans);
472 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBitmapOrPath ( StringInfo  str,
const BitmapOrPath node 
)
static

Definition at line 1794 of file outfuncs.c.

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

Referenced by outNode().

1795 {
1796  WRITE_NODE_TYPE("BITMAPORPATH");
1797 
1798  _outPathInfo(str, (const Path *) node);
1799 
1800  WRITE_NODE_FIELD(bitmapquals);
1801  WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
1802 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBooleanTest ( StringInfo  str,
const BooleanTest node 
)
static

Definition at line 1559 of file outfuncs.c.

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

Referenced by outNode().

1560 {
1561  WRITE_NODE_TYPE("BOOLEANTEST");
1562 
1564  WRITE_ENUM_FIELD(booltesttype, BoolTestType);
1565  WRITE_LOCATION_FIELD(location);
1566 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
BoolTestType
Definition: primnodes.h:1195
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outBoolExpr ( StringInfo  str,
const BoolExpr node 
)
static

Definition at line 1271 of file outfuncs.c.

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

Referenced by outNode().

1272 {
1273  char *opstr = NULL;
1274 
1275  WRITE_NODE_TYPE("BOOLEXPR");
1276 
1277  /* do-it-yourself enum representation */
1278  switch (node->boolop)
1279  {
1280  case AND_EXPR:
1281  opstr = "and";
1282  break;
1283  case OR_EXPR:
1284  opstr = "or";
1285  break;
1286  case NOT_EXPR:
1287  opstr = "not";
1288  break;
1289  }
1290  appendStringInfoString(str, " :boolop ");
1291  outToken(str, opstr);
1292 
1294  WRITE_LOCATION_FIELD(location);
1295 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:115
BoolExprType boolop
Definition: primnodes.h:562
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define NULL
Definition: c.h:229
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCaseExpr ( StringInfo  str,
const CaseExpr node 
)
static

Definition at line 1426 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().

1427 {
1428  WRITE_NODE_TYPE("CASE");
1429 
1430  WRITE_OID_FIELD(casetype);
1431  WRITE_OID_FIELD(casecollid);
1434  WRITE_NODE_FIELD(defresult);
1435  WRITE_LOCATION_FIELD(location);
1436 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCaseTestExpr ( StringInfo  str,
const CaseTestExpr node 
)
static

Definition at line 1449 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1450 {
1451  WRITE_NODE_TYPE("CASETESTEXPR");
1452 
1453  WRITE_OID_FIELD(typeId);
1454  WRITE_INT_FIELD(typeMod);
1455  WRITE_OID_FIELD(collation);
1456 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outCaseWhen ( StringInfo  str,
const CaseWhen node 
)
static

Definition at line 1439 of file outfuncs.c.

References result, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1440 {
1441  WRITE_NODE_TYPE("WHEN");
1442 
1443  WRITE_NODE_FIELD(expr);
1445  WRITE_LOCATION_FIELD(location);
1446 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
return result
Definition: formatting.c:1633
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCoalesceExpr ( StringInfo  str,
const CoalesceExpr node 
)
static

Definition at line 1497 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().

1498 {
1499  WRITE_NODE_TYPE("COALESCE");
1500 
1501  WRITE_OID_FIELD(coalescetype);
1502  WRITE_OID_FIELD(coalescecollid);
1504  WRITE_LOCATION_FIELD(location);
1505 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCoerceToDomain ( StringInfo  str,
const CoerceToDomain node 
)
static

Definition at line 1569 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().

1570 {
1571  WRITE_NODE_TYPE("COERCETODOMAIN");
1572 
1574  WRITE_OID_FIELD(resulttype);
1575  WRITE_INT_FIELD(resulttypmod);
1576  WRITE_OID_FIELD(resultcollid);
1577  WRITE_ENUM_FIELD(coercionformat, CoercionForm);
1578  WRITE_LOCATION_FIELD(location);
1579 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCoerceToDomainValue ( StringInfo  str,
const CoerceToDomainValue node 
)
static

Definition at line 1582 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1583 {
1584  WRITE_NODE_TYPE("COERCETODOMAINVALUE");
1585 
1586  WRITE_OID_FIELD(typeId);
1587  WRITE_INT_FIELD(typeMod);
1588  WRITE_OID_FIELD(collation);
1589  WRITE_LOCATION_FIELD(location);
1590 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outCoerceViaIO ( StringInfo  str,
const CoerceViaIO node 
)
static

Definition at line 1378 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().

1379 {
1380  WRITE_NODE_TYPE("COERCEVIAIO");
1381 
1383  WRITE_OID_FIELD(resulttype);
1384  WRITE_OID_FIELD(resultcollid);
1385  WRITE_ENUM_FIELD(coerceformat, CoercionForm);
1386  WRITE_LOCATION_FIELD(location);
1387 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCollateClause ( StringInfo  str,
const CollateClause node 
)
static

Definition at line 2835 of file outfuncs.c.

References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2836 {
2837  WRITE_NODE_TYPE("COLLATECLAUSE");
2838 
2840  WRITE_NODE_FIELD(collname);
2841  WRITE_LOCATION_FIELD(location);
2842 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCollateExpr ( StringInfo  str,
const CollateExpr node 
)
static

Definition at line 1416 of file outfuncs.c.

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

Referenced by outNode().

1417 {
1418  WRITE_NODE_TYPE("COLLATE");
1419 
1421  WRITE_OID_FIELD(collOid);
1422  WRITE_LOCATION_FIELD(location);
1423 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outColumnDef ( StringInfo  str,
const ColumnDef node 
)
static

Definition at line 2787 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().

2788 {
2789  WRITE_NODE_TYPE("COLUMNDEF");
2790 
2791  WRITE_STRING_FIELD(colname);
2792  WRITE_NODE_FIELD(typeName);
2793  WRITE_INT_FIELD(inhcount);
2794  WRITE_BOOL_FIELD(is_local);
2795  WRITE_BOOL_FIELD(is_not_null);
2796  WRITE_BOOL_FIELD(is_from_type);
2797  WRITE_BOOL_FIELD(is_from_parent);
2798  WRITE_CHAR_FIELD(storage);
2799  WRITE_NODE_FIELD(raw_default);
2800  WRITE_NODE_FIELD(cooked_default);
2801  WRITE_CHAR_FIELD(identity);
2802  WRITE_NODE_FIELD(collClause);
2803  WRITE_OID_FIELD(collOid);
2804  WRITE_NODE_FIELD(constraints);
2805  WRITE_NODE_FIELD(fdwoptions);
2806  WRITE_LOCATION_FIELD(location);
2807 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:66
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outColumnRef ( StringInfo  str,
const ColumnRef node 
)
static

Definition at line 3247 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3248 {
3249  WRITE_NODE_TYPE("COLUMNREF");
3250 
3251  WRITE_NODE_FIELD(fields);
3252  WRITE_LOCATION_FIELD(location);
3253 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCommonTableExpr ( StringInfo  str,
const CommonTableExpr node 
)
static

Definition at line 2998 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().

2999 {
3000  WRITE_NODE_TYPE("COMMONTABLEEXPR");
3001 
3002  WRITE_STRING_FIELD(ctename);
3003  WRITE_NODE_FIELD(aliascolnames);
3004  WRITE_NODE_FIELD(ctequery);
3005  WRITE_LOCATION_FIELD(location);
3006  WRITE_BOOL_FIELD(cterecursive);
3007  WRITE_INT_FIELD(cterefcount);
3008  WRITE_NODE_FIELD(ctecolnames);
3009  WRITE_NODE_FIELD(ctecoltypes);
3010  WRITE_NODE_FIELD(ctecoltypmods);
3011  WRITE_NODE_FIELD(ctecolcollations);
3012 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outConst ( StringInfo  str,
const Const node 
)
static

Definition at line 1085 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().

1086 {
1087  WRITE_NODE_TYPE("CONST");
1088 
1089  WRITE_OID_FIELD(consttype);
1090  WRITE_INT_FIELD(consttypmod);
1091  WRITE_OID_FIELD(constcollid);
1092  WRITE_INT_FIELD(constlen);
1093  WRITE_BOOL_FIELD(constbyval);
1094  WRITE_BOOL_FIELD(constisnull);
1095  WRITE_LOCATION_FIELD(location);
1096 
1097  appendStringInfoString(str, " :constvalue ");
1098  if (node->constisnull)
1099  appendStringInfoString(str, "<>");
1100  else
1101  outDatum(str, node->constvalue, node->constlen, node->constbyval);
1102 }
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:90
void outDatum(StringInfo str, Datum value, int typlen, bool typbyval)
Definition: outfuncs.c:221
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
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:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
bool constisnull
Definition: primnodes.h:197
static void _outConstraint ( StringInfo  str,
const Constraint node 
)
static

Definition at line 3420 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().

3421 {
3422  WRITE_NODE_TYPE("CONSTRAINT");
3423 
3424  WRITE_STRING_FIELD(conname);
3425  WRITE_BOOL_FIELD(deferrable);
3426  WRITE_BOOL_FIELD(initdeferred);
3427  WRITE_LOCATION_FIELD(location);
3428 
3429  appendStringInfoString(str, " :contype ");
3430  switch (node->contype)
3431  {
3432  case CONSTR_NULL:
3433  appendStringInfoString(str, "NULL");
3434  break;
3435 
3436  case CONSTR_NOTNULL:
3437  appendStringInfoString(str, "NOT_NULL");
3438  break;
3439 
3440  case CONSTR_DEFAULT:
3441  appendStringInfoString(str, "DEFAULT");
3442  WRITE_NODE_FIELD(raw_expr);
3443  WRITE_STRING_FIELD(cooked_expr);
3444  break;
3445 
3446  case CONSTR_IDENTITY:
3447  appendStringInfoString(str, "IDENTITY");
3448  WRITE_NODE_FIELD(raw_expr);
3449  WRITE_STRING_FIELD(cooked_expr);
3450  WRITE_CHAR_FIELD(generated_when);
3451  break;
3452 
3453  case CONSTR_CHECK:
3454  appendStringInfoString(str, "CHECK");
3455  WRITE_BOOL_FIELD(is_no_inherit);
3456  WRITE_NODE_FIELD(raw_expr);
3457  WRITE_STRING_FIELD(cooked_expr);
3458  break;
3459 
3460  case CONSTR_PRIMARY:
3461  appendStringInfoString(str, "PRIMARY_KEY");
3462  WRITE_NODE_FIELD(keys);
3464  WRITE_STRING_FIELD(indexname);
3465  WRITE_STRING_FIELD(indexspace);
3466  /* access_method and where_clause not currently used */
3467  break;
3468 
3469  case CONSTR_UNIQUE:
3470  appendStringInfoString(str, "UNIQUE");
3471  WRITE_NODE_FIELD(keys);
3473  WRITE_STRING_FIELD(indexname);
3474  WRITE_STRING_FIELD(indexspace);
3475  /* access_method and where_clause not currently used */
3476  break;
3477 
3478  case CONSTR_EXCLUSION:
3479  appendStringInfoString(str, "EXCLUSION");
3480  WRITE_NODE_FIELD(exclusions);
3482  WRITE_STRING_FIELD(indexname);
3483  WRITE_STRING_FIELD(indexspace);
3484  WRITE_STRING_FIELD(access_method);
3485  WRITE_NODE_FIELD(where_clause);
3486  break;
3487 
3488  case CONSTR_FOREIGN:
3489  appendStringInfoString(str, "FOREIGN_KEY");
3490  WRITE_NODE_FIELD(pktable);
3491  WRITE_NODE_FIELD(fk_attrs);
3492  WRITE_NODE_FIELD(pk_attrs);
3493  WRITE_CHAR_FIELD(fk_matchtype);
3494  WRITE_CHAR_FIELD(fk_upd_action);
3495  WRITE_CHAR_FIELD(fk_del_action);
3496  WRITE_NODE_FIELD(old_conpfeqop);
3497  WRITE_OID_FIELD(old_pktable_oid);
3498  WRITE_BOOL_FIELD(skip_validation);
3499  WRITE_BOOL_FIELD(initially_valid);
3500  break;
3501 
3503  appendStringInfoString(str, "ATTR_DEFERRABLE");
3504  break;
3505 
3507  appendStringInfoString(str, "ATTR_NOT_DEFERRABLE");
3508  break;
3509 
3510  case CONSTR_ATTR_DEFERRED:
3511  appendStringInfoString(str, "ATTR_DEFERRED");
3512  break;
3513 
3514  case CONSTR_ATTR_IMMEDIATE:
3515  appendStringInfoString(str, "ATTR_IMMEDIATE");
3516  break;
3517 
3518  default:
3519  appendStringInfo(str, "<unrecognized_constraint %d>",
3520  (int) node->contype);
3521  break;
3522  }
3523 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
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:80
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:66
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
ConstrType contype
Definition: parsenodes.h:2073
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outConvertRowtypeExpr ( StringInfo  str,
const ConvertRowtypeExpr node 
)
static

Definition at line 1405 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().

1406 {
1407  WRITE_NODE_TYPE("CONVERTROWTYPEEXPR");
1408 
1410  WRITE_OID_FIELD(resulttype);
1411  WRITE_ENUM_FIELD(convertformat, CoercionForm);
1412  WRITE_LOCATION_FIELD(location);
1413 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCreateForeignTableStmt ( StringInfo  str,
const CreateForeignTableStmt node 
)
static

Definition at line 2612 of file outfuncs.c.

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

Referenced by outNode().

2613 {
2614  WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT");
2615 
2616  _outCreateStmtInfo(str, (const CreateStmt *) node);
2617 
2618  WRITE_STRING_FIELD(servername);
2620 }
static void _outCreateStmtInfo(StringInfo str, const CreateStmt *node)
Definition: outfuncs.c:2588
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCreateStatsStmt ( StringInfo  str,
const CreateStatsStmt node 
)
static

Definition at line 2662 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2663 {
2664  WRITE_NODE_TYPE("CREATESTATSSTMT");
2665 
2666  WRITE_NODE_FIELD(defnames);
2667  WRITE_NODE_FIELD(stat_types);
2668  WRITE_NODE_FIELD(exprs);
2669  WRITE_NODE_FIELD(relations);
2670  WRITE_BOOL_FIELD(if_not_exists);
2671 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCreateStmt ( StringInfo  str,
const CreateStmt node 
)
static

Definition at line 2604 of file outfuncs.c.

References _outCreateStmtInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

2605 {
2606  WRITE_NODE_TYPE("CREATESTMT");
2607 
2608  _outCreateStmtInfo(str, (const CreateStmt *) node);
2609 }
static void _outCreateStmtInfo(StringInfo str, const CreateStmt *node)
Definition: outfuncs.c:2588
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outCreateStmtInfo ( StringInfo  str,
const CreateStmt node 
)
static

Definition at line 2588 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_STRING_FIELD.

Referenced by _outCreateForeignTableStmt(), and _outCreateStmt().

2589 {
2590  WRITE_NODE_FIELD(relation);
2591  WRITE_NODE_FIELD(tableElts);
2592  WRITE_NODE_FIELD(inhRelations);
2593  WRITE_NODE_FIELD(partspec);
2594  WRITE_NODE_FIELD(partbound);
2595  WRITE_NODE_FIELD(ofTypename);
2596  WRITE_NODE_FIELD(constraints);
2598  WRITE_ENUM_FIELD(oncommit, OnCommitAction);
2599  WRITE_STRING_FIELD(tablespacename);
2600  WRITE_BOOL_FIELD(if_not_exists);
2601 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
OnCommitAction
Definition: primnodes.h:47
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCteScan ( StringInfo  str,
const CteScan node 
)
static

Definition at line 646 of file outfuncs.c.

References _outScanInfo(), WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

647 {
648  WRITE_NODE_TYPE("CTESCAN");
649 
650  _outScanInfo(str, (const Scan *) node);
651 
652  WRITE_INT_FIELD(ctePlanId);
653  WRITE_INT_FIELD(cteParam);
654 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outCurrentOfExpr ( StringInfo  str,
const CurrentOfExpr node 
)
static

Definition at line 1604 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

1605 {
1606  WRITE_NODE_TYPE("CURRENTOFEXPR");
1607 
1608  WRITE_UINT_FIELD(cvarno);
1609  WRITE_STRING_FIELD(cursor_name);
1610  WRITE_INT_FIELD(cursor_param);
1611 }
#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:85
static void _outCustomPath ( StringInfo  str,
const CustomPath node 
)
static

Definition at line 1836 of file outfuncs.c.

References _outPathInfo(), appendStringInfoString(), CustomPathMethods::CustomName, CustomPath::methods, outToken(), WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

1837 {
1838  WRITE_NODE_TYPE("CUSTOMPATH");
1839 
1840  _outPathInfo(str, (const Path *) node);
1841 
1842  WRITE_UINT_FIELD(flags);
1843  WRITE_NODE_FIELD(custom_paths);
1844  WRITE_NODE_FIELD(custom_private);
1845  appendStringInfoString(str, " :methods ");
1846  outToken(str, node->methods->CustomName);
1847 }
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:115
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
const struct CustomPathMethods * methods
Definition: relation.h:1163
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:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outCustomScan ( StringInfo  str,
const CustomScan node 
)
static

Definition at line 694 of file outfuncs.c.

References _outScanInfo(), appendStringInfoString(), CustomScanMethods::CustomName, CustomScan::methods, outToken(), WRITE_BITMAPSET_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

695 {
696  WRITE_NODE_TYPE("CUSTOMSCAN");
697 
698  _outScanInfo(str, (const Scan *) node);
699 
700  WRITE_UINT_FIELD(flags);
701  WRITE_NODE_FIELD(custom_plans);
702  WRITE_NODE_FIELD(custom_exprs);
703  WRITE_NODE_FIELD(custom_private);
704  WRITE_NODE_FIELD(custom_scan_tlist);
705  WRITE_BITMAPSET_FIELD(custom_relids);
706  /* CustomName is a key to lookup CustomScanMethods */
707  appendStringInfoString(str, " :methods ");
708  outToken(str, node->methods->CustomName);
709 }
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:115
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#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:633
const char * CustomName
Definition: extensible.h:107
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outDeclareCursorStmt ( StringInfo  str,
const DeclareCursorStmt node 
)
static

Definition at line 2683 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2684 {
2685  WRITE_NODE_TYPE("DECLARECURSOR");
2686 
2687  WRITE_STRING_FIELD(portalname);
2689  WRITE_NODE_FIELD(query);
2690 }
#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:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outDefElem ( StringInfo  str,
const DefElem node 
)
static

Definition at line 2735 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().

2736 {
2737  WRITE_NODE_TYPE("DEFELEM");
2738 
2739  WRITE_STRING_FIELD(defnamespace);
2740  WRITE_STRING_FIELD(defname);
2742  WRITE_ENUM_FIELD(defaction, DefElemAction);
2743  WRITE_LOCATION_FIELD(location);
2744 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
DefElemAction
Definition: parsenodes.h:707
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outDistinctExpr ( StringInfo  str,
const DistinctExpr node 
)
static

Definition at line 1228 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().

1229 {
1230  WRITE_NODE_TYPE("DISTINCTEXPR");
1231 
1232  WRITE_OID_FIELD(opno);
1233  WRITE_OID_FIELD(opfuncid);
1234  WRITE_OID_FIELD(opresulttype);
1235  WRITE_BOOL_FIELD(opretset);
1236  WRITE_OID_FIELD(opcollid);
1237  WRITE_OID_FIELD(inputcollid);
1239  WRITE_LOCATION_FIELD(location);
1240 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outEquivalenceClass ( StringInfo  str,
const EquivalenceClass node 
)
static

Definition at line 2359 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().

2360 {
2361  /*
2362  * To simplify reading, we just chase up to the topmost merged EC and
2363  * print that, without bothering to show the merge-ees separately.
2364  */
2365  while (node->ec_merged)
2366  node = node->ec_merged;
2367 
2368  WRITE_NODE_TYPE("EQUIVALENCECLASS");
2369 
2370  WRITE_NODE_FIELD(ec_opfamilies);
2371  WRITE_OID_FIELD(ec_collation);
2372  WRITE_NODE_FIELD(ec_members);
2373  WRITE_NODE_FIELD(ec_sources);
2374  WRITE_NODE_FIELD(ec_derives);
2375  WRITE_BITMAPSET_FIELD(ec_relids);
2376  WRITE_BOOL_FIELD(ec_has_const);
2377  WRITE_BOOL_FIELD(ec_has_volatile);
2378  WRITE_BOOL_FIELD(ec_below_outer_join);
2379  WRITE_BOOL_FIELD(ec_broken);
2380  WRITE_UINT_FIELD(ec_sortref);
2381  WRITE_UINT_FIELD(ec_min_security);
2382  WRITE_UINT_FIELD(ec_max_security);
2383 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
struct EquivalenceClass * ec_merged
Definition: relation.h:786
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outEquivalenceMember ( StringInfo  str,
const EquivalenceMember node 
)
static

Definition at line 2386 of file outfuncs.c.

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

Referenced by outNode().

2387 {
2388  WRITE_NODE_TYPE("EQUIVALENCEMEMBER");
2389 
2390  WRITE_NODE_FIELD(em_expr);
2391  WRITE_BITMAPSET_FIELD(em_relids);
2392  WRITE_BITMAPSET_FIELD(em_nullable_relids);
2393  WRITE_BOOL_FIELD(em_is_const);
2394  WRITE_BOOL_FIELD(em_is_child);
2395  WRITE_OID_FIELD(em_datatype);
2396 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outExtensibleNode ( StringInfo  str,
const ExtensibleNode node 
)
static

Definition at line 2564 of file outfuncs.c.

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

Referenced by outNode().

2565 {
2566  const ExtensibleNodeMethods *methods;
2567 
2568  methods = GetExtensibleNodeMethods(node->extnodename, false);
2569 
2570  WRITE_NODE_TYPE("EXTENSIBLENODE");
2571 
2572  WRITE_STRING_FIELD(extnodename);
2573 
2574  /* serialize the private fields */
2575  methods->nodeOut(str, node);
2576 }
void(* nodeOut)(struct StringInfoData *str, const struct ExtensibleNode *node)
Definition: extensible.h:68
const char * extnodename
Definition: extensible.h:35
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
const ExtensibleNodeMethods * GetExtensibleNodeMethods(const char *extnodename, bool missing_ok)
Definition: extensible.c:125
static void _outFieldSelect ( StringInfo  str,
const FieldSelect node 
)
static

Definition at line 1342 of file outfuncs.c.

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

Referenced by outNode().

1343 {
1344  WRITE_NODE_TYPE("FIELDSELECT");
1345 
1347  WRITE_INT_FIELD(fieldnum);
1348  WRITE_OID_FIELD(resulttype);
1349  WRITE_INT_FIELD(resulttypmod);
1350  WRITE_OID_FIELD(resultcollid);
1351 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outFieldStore ( StringInfo  str,
const FieldStore node 
)
static

Definition at line 1354 of file outfuncs.c.

References arg, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1355 {
1356  WRITE_NODE_TYPE("FIELDSTORE");
1357 
1359  WRITE_NODE_FIELD(newvals);
1360  WRITE_NODE_FIELD(fieldnums);
1361  WRITE_OID_FIELD(resulttype);
1362 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outForeignKeyCacheInfo ( StringInfo  str,
const ForeignKeyCacheInfo node 
)
static

Definition at line 3526 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().

3527 {
3528  int i;
3529 
3530  WRITE_NODE_TYPE("FOREIGNKEYCACHEINFO");
3531 
3532  WRITE_OID_FIELD(conrelid);
3533  WRITE_OID_FIELD(confrelid);
3534  WRITE_INT_FIELD(nkeys);
3535  appendStringInfoString(str, " :conkey");
3536  for (i = 0; i < node->nkeys; i++)
3537  appendStringInfo(str, " %d", node->conkey[i]);
3538  appendStringInfoString(str, " :confkey");
3539  for (i = 0; i < node->nkeys; i++)
3540  appendStringInfo(str, " %d", node->confkey[i]);
3541  appendStringInfoString(str, " :conpfeqop");
3542  for (i = 0; i < node->nkeys; i++)
3543  appendStringInfo(str, " %u", node->conpfeqop[i]);
3544 }
#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:58
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
static void _outForeignKeyOptInfo ( StringInfo  str,
const ForeignKeyOptInfo node 
)
static

Definition at line 2316 of file outfuncs.c.

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

Referenced by outNode().

2317 {
2318  int i;
2319 
2320  WRITE_NODE_TYPE("FOREIGNKEYOPTINFO");
2321 
2322  WRITE_UINT_FIELD(con_relid);
2323  WRITE_UINT_FIELD(ref_relid);
2324  WRITE_INT_FIELD(nkeys);
2325  appendStringInfoString(str, " :conkey");
2326  for (i = 0; i < node->nkeys; i++)
2327  appendStringInfo(str, " %d", node->conkey[i]);
2328  appendStringInfoString(str, " :confkey");
2329  for (i = 0; i < node->nkeys; i++)
2330  appendStringInfo(str, " %d", node->confkey[i]);
2331  appendStringInfoString(str, " :conpfeqop");
2332  for (i = 0; i < node->nkeys; i++)
2333  appendStringInfo(str, " %u", node->conpfeqop[i]);
2334  WRITE_INT_FIELD(nmatched_ec);
2335  WRITE_INT_FIELD(nmatched_rcols);
2336  WRITE_INT_FIELD(nmatched_ri);
2337  /* for compactness, just print the number of matches per column: */
2338  appendStringInfoString(str, " :eclass");
2339  for (i = 0; i < node->nkeys; i++)
2340  appendStringInfo(str, " %d", (node->eclass[i] != NULL));
2341  appendStringInfoString(str, " :rinfos");
2342  for (i = 0; i < node->nkeys; i++)
2343  appendStringInfo(str, " %d", list_length(node->rinfos[i]));
2344 }
#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:699
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
struct EquivalenceClass * eclass[INDEX_MAX_KEYS]
Definition: relation.h:706
AttrNumber conkey[INDEX_MAX_KEYS]
Definition: relation.h:697
#define NULL
Definition: c.h:229
#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:698
List * rinfos[INDEX_MAX_KEYS]
Definition: relation.h:708
static void _outForeignPath ( StringInfo  str,
const ForeignPath node 
)
static

Definition at line 1825 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1826 {
1827  WRITE_NODE_TYPE("FOREIGNPATH");
1828 
1829  _outPathInfo(str, (const Path *) node);
1830 
1831  WRITE_NODE_FIELD(fdw_outerpath);
1832  WRITE_NODE_FIELD(fdw_private);
1833 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outForeignScan ( StringInfo  str,
const ForeignScan node 
)
static

Definition at line 677 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().

678 {
679  WRITE_NODE_TYPE("FOREIGNSCAN");
680 
681  _outScanInfo(str, (const Scan *) node);
682 
683  WRITE_ENUM_FIELD(operation, CmdType);
684  WRITE_OID_FIELD(fs_server);
685  WRITE_NODE_FIELD(fdw_exprs);
686  WRITE_NODE_FIELD(fdw_private);
687  WRITE_NODE_FIELD(fdw_scan_tlist);
688  WRITE_NODE_FIELD(fdw_recheck_quals);
689  WRITE_BITMAPSET_FIELD(fs_relids);
690  WRITE_BOOL_FIELD(fsSystemCol);
691 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
CmdType
Definition: nodes.h:649
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outFromExpr ( StringInfo  str,
const FromExpr node 
)
static

Definition at line 1670 of file outfuncs.c.

References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1671 {
1672  WRITE_NODE_TYPE("FROMEXPR");
1673 
1674  WRITE_NODE_FIELD(fromlist);
1675  WRITE_NODE_FIELD(quals);
1676 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outFuncCall ( StringInfo  str,
const FuncCall node 
)
static

Definition at line 2718 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().

2719 {
2720  WRITE_NODE_TYPE("FUNCCALL");
2721 
2722  WRITE_NODE_FIELD(funcname);
2724  WRITE_NODE_FIELD(agg_order);
2725  WRITE_NODE_FIELD(agg_filter);
2726  WRITE_BOOL_FIELD(agg_within_group);
2727  WRITE_BOOL_FIELD(agg_star);
2728  WRITE_BOOL_FIELD(agg_distinct);
2729  WRITE_BOOL_FIELD(func_variadic);
2730  WRITE_NODE_FIELD(over);
2731  WRITE_LOCATION_FIELD(location);
2732 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outFuncExpr ( StringInfo  str,
const FuncExpr node 
)
static

Definition at line 1186 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().

1187 {
1188  WRITE_NODE_TYPE("FUNCEXPR");
1189 
1190  WRITE_OID_FIELD(funcid);
1191  WRITE_OID_FIELD(funcresulttype);
1192  WRITE_BOOL_FIELD(funcretset);
1193  WRITE_BOOL_FIELD(funcvariadic);
1194  WRITE_ENUM_FIELD(funcformat, CoercionForm);
1195  WRITE_OID_FIELD(funccollid);
1196  WRITE_OID_FIELD(inputcollid);
1198  WRITE_LOCATION_FIELD(location);
1199 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
CoercionForm
Definition: primnodes.h:436
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outFunctionScan ( StringInfo  str,
const FunctionScan node 
)
static

Definition at line 615 of file outfuncs.c.

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

Referenced by outNode().

616 {
617  WRITE_NODE_TYPE("FUNCTIONSCAN");
618 
619  _outScanInfo(str, (const Scan *) node);
620 
622  WRITE_BOOL_FIELD(funcordinality);
623 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#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:94
static void _outGather ( StringInfo  str,
const Gather node 
)
static

Definition at line 475 of file outfuncs.c.

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

Referenced by outNode().

476 {
477  WRITE_NODE_TYPE("GATHER");
478 
479  _outPlanInfo(str, (const Plan *) node);
480 
481  WRITE_INT_FIELD(num_workers);
482  WRITE_BOOL_FIELD(single_copy);
483  WRITE_BOOL_FIELD(invisible);
484 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outGatherMerge ( StringInfo  str,
const GatherMerge node 
)
static

Definition at line 487 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), booltostr, GatherMerge::collations, i, GatherMerge::nullsFirst, GatherMerge::numCols, GatherMerge::sortColIdx, GatherMerge::sortOperators, WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

488 {
489  int i;
490 
491  WRITE_NODE_TYPE("GATHERMERGE");
492 
493  _outPlanInfo(str, (const Plan *) node);
494 
495  WRITE_INT_FIELD(num_workers);
496  WRITE_INT_FIELD(numCols);
497 
498  appendStringInfoString(str, " :sortColIdx");
499  for (i = 0; i < node->numCols; i++)
500  appendStringInfo(str, " %d", node->sortColIdx[i]);
501 
502  appendStringInfoString(str, " :sortOperators");
503  for (i = 0; i < node->numCols; i++)
504  appendStringInfo(str, " %u", node->sortOperators[i]);
505 
506  appendStringInfoString(str, " :collations");
507  for (i = 0; i < node->numCols; i++)
508  appendStringInfo(str, " %u", node->collations[i]);
509 
510  appendStringInfoString(str, " :nullsFirst");
511  for (i = 0; i < node->numCols; i++)
512  appendStringInfo(str, " %s", booltostr(node->nullsFirst[i]));
513 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
Oid * collations
Definition: plannodes.h:850
AttrNumber * sortColIdx
Definition: plannodes.h:848
#define booltostr(x)
Definition: outfuncs.c:104
bool * nullsFirst
Definition: plannodes.h:851
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
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:849
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
int i
static void _outGatherMergePath ( StringInfo  str,
const GatherMergePath node 
)
static

Definition at line 2120 of file outfuncs.c.

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

Referenced by outNode().

2121 {
2122  WRITE_NODE_TYPE("GATHERMERGEPATH");
2123 
2124  _outPathInfo(str, (const Path *) node);
2125 
2127  WRITE_INT_FIELD(num_workers);
2128 }
#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:1710
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outGatherPath ( StringInfo  str,
const GatherPath node 
)
static

Definition at line 1906 of file outfuncs.c.

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

Referenced by outNode().

1907 {
1908  WRITE_NODE_TYPE("GATHERPATH");
1909 
1910  _outPathInfo(str, (const Path *) node);
1911 
1913  WRITE_BOOL_FIELD(single_copy);
1914  WRITE_INT_FIELD(num_workers);
1915 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outGroup ( StringInfo  str,
const Group node 
)
static

Definition at line 834 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), Group::grpColIdx, Group::grpOperators, i, Group::numCols, WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

835 {
836  int i;
837 
838  WRITE_NODE_TYPE("GROUP");
839 
840  _outPlanInfo(str, (const Plan *) node);
841 
842  WRITE_INT_FIELD(numCols);
843 
844  appendStringInfoString(str, " :grpColIdx");
845  for (i = 0; i < node->numCols; i++)
846  appendStringInfo(str, " %d", node->grpColIdx[i]);
847 
848  appendStringInfoString(str, " :grpOperators");
849  for (i = 0; i < node->numCols; i++)
850  appendStringInfo(str, " %u", node->grpOperators[i]);
851 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
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:761
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
int i
AttrNumber * grpColIdx
Definition: plannodes.h:762
Oid * grpOperators
Definition: plannodes.h:763
static void _outGroupingFunc ( StringInfo  str,
const GroupingFunc node 
)
static

Definition at line 1142 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().

1143 {
1144  WRITE_NODE_TYPE("GROUPINGFUNC");
1145 
1147  WRITE_NODE_FIELD(refs);
1148  WRITE_NODE_FIELD(cols);
1149  WRITE_UINT_FIELD(agglevelsup);
1150  WRITE_LOCATION_FIELD(location);
1151 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#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:94
static void _outGroupingSet ( StringInfo  str,
const GroupingSet node 
)
static

Definition at line 2951 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2952 {
2953  WRITE_NODE_TYPE("GROUPINGSET");
2954 
2956  WRITE_NODE_FIELD(content);
2957  WRITE_LOCATION_FIELD(location);
2958 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
GroupingSetKind
Definition: parsenodes.h:1241
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outGroupingSetData ( StringInfo  str,
const GroupingSetData node 
)
static

Definition at line 2000 of file outfuncs.c.

References WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2001 {
2002  WRITE_NODE_TYPE("GSDATA");
2003 
2004  WRITE_NODE_FIELD(set);
2005  WRITE_FLOAT_FIELD(numGroups, "%.0f");
2006 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outGroupingSetsPath ( StringInfo  str,
const GroupingSetsPath node 
)
static

Definition at line 2009 of file outfuncs.c.

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

Referenced by outNode().

2010 {
2011  WRITE_NODE_TYPE("GROUPINGSETSPATH");
2012 
2013  _outPathInfo(str, (const Path *) node);
2014 
2016  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
2017  WRITE_NODE_FIELD(rollups);
2018  WRITE_NODE_FIELD(qual);
2019 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
AggStrategy
Definition: nodes.h:735
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outGroupPath ( StringInfo  str,
const GroupPath node 
)
static

Definition at line 1949 of file outfuncs.c.

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

Referenced by outNode().

1950 {
1951  WRITE_NODE_TYPE("GROUPPATH");
1952 
1953  _outPathInfo(str, (const Path *) node);
1954 
1956  WRITE_NODE_FIELD(groupClause);
1957  WRITE_NODE_FIELD(qual);
1958 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outHash ( StringInfo  str,
const Hash node 
)
static

Definition at line 910 of file outfuncs.c.

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

Referenced by outNode().

911 {
912  WRITE_NODE_TYPE("HASH");
913 
914  _outPlanInfo(str, (const Plan *) node);
915 
916  WRITE_OID_FIELD(skewTable);
917  WRITE_INT_FIELD(skewColumn);
918  WRITE_BOOL_FIELD(skewInherit);
919 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outHashJoin ( StringInfo  str,
const HashJoin node 
)
static

Definition at line 762 of file outfuncs.c.

References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

763 {
764  WRITE_NODE_TYPE("HASHJOIN");
765 
766  _outJoinPlanInfo(str, (const Join *) node);
767 
768  WRITE_NODE_FIELD(hashclauses);
769 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:323
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outHashPath ( StringInfo  str,
const HashPath node 
)
static

Definition at line 2153 of file outfuncs.c.

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

Referenced by outNode().

2154 {
2155  WRITE_NODE_TYPE("HASHPATH");
2156 
2157  _outJoinPathInfo(str, (const JoinPath *) node);
2158 
2159  WRITE_NODE_FIELD(path_hashclauses);
2160  WRITE_INT_FIELD(num_batches);
2161 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1735
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outImportForeignSchemaStmt ( StringInfo  str,
const ImportForeignSchemaStmt node 
)
static

Definition at line 2623 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2624 {
2625  WRITE_NODE_TYPE("IMPORTFOREIGNSCHEMASTMT");
2626 
2627  WRITE_STRING_FIELD(server_name);
2628  WRITE_STRING_FIELD(remote_schema);
2629  WRITE_STRING_FIELD(local_schema);
2631  WRITE_NODE_FIELD(table_list);
2633 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
ImportForeignSchemaType
Definition: parsenodes.h:2279
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIndexElem ( StringInfo  str,
const IndexElem node 
)
static

Definition at line 2845 of file outfuncs.c.

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

Referenced by outNode().

2846 {
2847  WRITE_NODE_TYPE("INDEXELEM");
2848 
2850  WRITE_NODE_FIELD(expr);
2851  WRITE_STRING_FIELD(indexcolname);
2852  WRITE_NODE_FIELD(collation);
2853  WRITE_NODE_FIELD(opclass);
2854  WRITE_ENUM_FIELD(ordering, SortByDir);
2855  WRITE_ENUM_FIELD(nulls_ordering, SortByNulls);
2856 }
SortByDir
Definition: parsenodes.h:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
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:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIndexOnlyScan ( StringInfo  str,
const IndexOnlyScan node 
)
static

Definition at line 558 of file outfuncs.c.

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

Referenced by outNode().

559 {
560  WRITE_NODE_TYPE("INDEXONLYSCAN");
561 
562  _outScanInfo(str, (const Scan *) node);
563 
564  WRITE_OID_FIELD(indexid);
565  WRITE_NODE_FIELD(indexqual);
566  WRITE_NODE_FIELD(indexorderby);
567  WRITE_NODE_FIELD(indextlist);
568  WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
569 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
ScanDirection
Definition: sdir.h:22
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIndexOptInfo ( StringInfo  str,
const IndexOptInfo node 
)
static

Definition at line 2291 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().

2292 {
2293  WRITE_NODE_TYPE("INDEXOPTINFO");
2294 
2295  /* NB: this isn't a complete set of fields */
2296  WRITE_OID_FIELD(indexoid);
2297  /* Do NOT print rel field, else infinite recursion */
2298  WRITE_UINT_FIELD(pages);
2299  WRITE_FLOAT_FIELD(tuples, "%.0f");
2300  WRITE_INT_FIELD(tree_height);
2301  WRITE_INT_FIELD(ncolumns);
2302  /* array fields aren't really worth the trouble to print */
2303  WRITE_OID_FIELD(relam);
2304  /* indexprs is redundant since we print indextlist */
2305  WRITE_NODE_FIELD(indpred);
2306  WRITE_NODE_FIELD(indextlist);
2307  WRITE_NODE_FIELD(indrestrictinfo);
2308  WRITE_BOOL_FIELD(predOK);
2309  WRITE_BOOL_FIELD(unique);
2310  WRITE_BOOL_FIELD(immediate);
2311  WRITE_BOOL_FIELD(hypothetical);
2312  /* we don't bother with fields copied from the index AM's API struct */
2313 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIndexPath ( StringInfo  str,
const IndexPath node 
)
static

Definition at line 1755 of file outfuncs.c.

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

Referenced by outNode().

1756 {
1757  WRITE_NODE_TYPE("INDEXPATH");
1758 
1759  _outPathInfo(str, (const Path *) node);
1760 
1761  WRITE_NODE_FIELD(indexinfo);
1762  WRITE_NODE_FIELD(indexclauses);
1763  WRITE_NODE_FIELD(indexquals);
1764  WRITE_NODE_FIELD(indexqualcols);
1765  WRITE_NODE_FIELD(indexorderbys);
1766  WRITE_NODE_FIELD(indexorderbycols);
1767  WRITE_ENUM_FIELD(indexscandir, ScanDirection);
1768  WRITE_FLOAT_FIELD(indextotalcost, "%.2f");
1769  WRITE_FLOAT_FIELD(indexselectivity, "%.4f");
1770 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
ScanDirection
Definition: sdir.h:22
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIndexScan ( StringInfo  str,
const IndexScan node 
)
static

Definition at line 542 of file outfuncs.c.

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

Referenced by outNode().

543 {
544  WRITE_NODE_TYPE("INDEXSCAN");
545 
546  _outScanInfo(str, (const Scan *) node);
547 
548  WRITE_OID_FIELD(indexid);
549  WRITE_NODE_FIELD(indexqual);
550  WRITE_NODE_FIELD(indexqualorig);
551  WRITE_NODE_FIELD(indexorderby);
552  WRITE_NODE_FIELD(indexorderbyorig);
553  WRITE_NODE_FIELD(indexorderbyops);
554  WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
555 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
ScanDirection
Definition: sdir.h:22
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIndexStmt ( StringInfo  str,
const IndexStmt node 
)
static

Definition at line 2636 of file outfuncs.c.

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

Referenced by outNode().

2637 {
2638  WRITE_NODE_TYPE("INDEXSTMT");
2639 
2640  WRITE_STRING_FIELD(idxname);
2641  WRITE_NODE_FIELD(relation);
2642  WRITE_STRING_FIELD(accessMethod);
2643  WRITE_STRING_FIELD(tableSpace);
2644  WRITE_NODE_FIELD(indexParams);
2646  WRITE_NODE_FIELD(whereClause);
2647  WRITE_NODE_FIELD(excludeOpNames);
2648  WRITE_STRING_FIELD(idxcomment);
2649  WRITE_OID_FIELD(indexOid);
2650  WRITE_OID_FIELD(oldNode);
2651  WRITE_BOOL_FIELD(unique);
2652  WRITE_BOOL_FIELD(primary);
2653  WRITE_BOOL_FIELD(isconstraint);
2654  WRITE_BOOL_FIELD(deferrable);
2655  WRITE_BOOL_FIELD(initdeferred);
2656  WRITE_BOOL_FIELD(transformed);
2657  WRITE_BOOL_FIELD(concurrent);
2658  WRITE_BOOL_FIELD(if_not_exists);
2659 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outInferenceElem ( StringInfo  str,
const InferenceElem node 
)
static

Definition at line 1623 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1624 {
1625  WRITE_NODE_TYPE("INFERENCEELEM");
1626 
1627  WRITE_NODE_FIELD(expr);
1628  WRITE_OID_FIELD(infercollid);
1629  WRITE_OID_FIELD(inferopclass);
1630 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outIntoClause ( StringInfo  str,
const IntoClause node 
)
static

Definition at line 1055 of file outfuncs.c.

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

Referenced by outNode().

1056 {
1057  WRITE_NODE_TYPE("INTOCLAUSE");
1058 
1059  WRITE_NODE_FIELD(rel);
1060  WRITE_NODE_FIELD(colNames);
1062  WRITE_ENUM_FIELD(onCommit, OnCommitAction);
1063  WRITE_STRING_FIELD(tableSpaceName);
1064  WRITE_NODE_FIELD(viewQuery);
1065  WRITE_BOOL_FIELD(skipData);
1066 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
OnCommitAction
Definition: primnodes.h:47
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outJoin ( StringInfo  str,
const Join node 
)
static

Definition at line 712 of file outfuncs.c.

References _outJoinPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

713 {
714  WRITE_NODE_TYPE("JOIN");
715 
716  _outJoinPlanInfo(str, (const Join *) node);
717 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:323
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outJoinExpr ( StringInfo  str,
const JoinExpr node 
)
static

Definition at line 1655 of file outfuncs.c.

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

Referenced by outNode().

1656 {
1657  WRITE_NODE_TYPE("JOINEXPR");
1658 
1659  WRITE_ENUM_FIELD(jointype, JoinType);
1660  WRITE_BOOL_FIELD(isNatural);
1661  WRITE_NODE_FIELD(larg);
1662  WRITE_NODE_FIELD(rarg);
1663  WRITE_NODE_FIELD(usingClause);
1664  WRITE_NODE_FIELD(quals);
1665  WRITE_NODE_FIELD(alias);
1666  WRITE_INT_FIELD(rtindex);
1667 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
JoinType
Definition: nodes.h:673
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outJoinPathInfo ( StringInfo  str,
const JoinPath node 
)
static

Definition at line 1735 of file outfuncs.c.

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

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

1736 {
1737  _outPathInfo(str, (const Path *) node);
1738 
1739  WRITE_ENUM_FIELD(jointype, JoinType);
1740  WRITE_BOOL_FIELD(inner_unique);
1741  WRITE_NODE_FIELD(outerjoinpath);
1742  WRITE_NODE_FIELD(innerjoinpath);
1743  WRITE_NODE_FIELD(joinrestrictinfo);
1744 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
JoinType
Definition: nodes.h:673
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outJoinPlanInfo ( StringInfo  str,
const Join node 
)
static

Definition at line 323 of file outfuncs.c.

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

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

324 {
325  _outPlanInfo(str, (const Plan *) node);
326 
327  WRITE_ENUM_FIELD(jointype, JoinType);
328  WRITE_BOOL_FIELD(inner_unique);
329  WRITE_NODE_FIELD(joinqual);
330 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
JoinType
Definition: nodes.h:673
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outLimit ( StringInfo  str,
const Limit node 
)
static

Definition at line 959 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

960 {
961  WRITE_NODE_TYPE("LIMIT");
962 
963  _outPlanInfo(str, (const Plan *) node);
964 
965  WRITE_NODE_FIELD(limitOffset);
966  WRITE_NODE_FIELD(limitCount);
967 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outLimitPath ( StringInfo  str,
const LimitPath node 
)
static

Definition at line 2108 of file outfuncs.c.

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

Referenced by outNode().

2109 {
2110  WRITE_NODE_TYPE("LIMITPATH");
2111 
2112  _outPathInfo(str, (const Path *) node);
2113 
2115  WRITE_NODE_FIELD(limitOffset);
2116  WRITE_NODE_FIELD(limitCount);
2117 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outList ( StringInfo  str,
const List node 
)
static

Definition at line 162 of file outfuncs.c.

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

Referenced by outNode().

163 {
164  const ListCell *lc;
165 
166  appendStringInfoChar(str, '(');
167 
168  if (IsA(node, IntList))
169  appendStringInfoChar(str, 'i');
170  else if (IsA(node, OidList))
171  appendStringInfoChar(str, 'o');
172 
173  foreach(lc, node)
174  {
175  /*
176  * For the sake of backward compatibility, we emit a slightly
177  * different whitespace format for lists of nodes vs. other types of
178  * lists. XXX: is this necessary?
179  */
180  if (IsA(node, List))
181  {
182  outNode(str, lfirst(lc));
183  if (lnext(lc))
184  appendStringInfoChar(str, ' ');
185  }
186  else if (IsA(node, IntList))
187  appendStringInfo(str, " %d", lfirst_int(lc));
188  else if (IsA(node, OidList))
189  appendStringInfo(str, " %u", lfirst_oid(lc));
190  else
191  elog(ERROR, "unrecognized list node type: %d",
192  (int) node->type);
193  }
194 
195  appendStringInfoChar(str, ')');
196 }
#define IsA(nodeptr, _type_)
Definition: nodes.h:560
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:3595
#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
static void _outLockingClause ( StringInfo  str,
const LockingClause node 
)
static

Definition at line 2756 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2757 {
2758  WRITE_NODE_TYPE("LOCKINGCLAUSE");
2759 
2760  WRITE_NODE_FIELD(lockedRels);
2762  WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
2763 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
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:94
static void _outLockRows ( StringInfo  str,
const LockRows node 
)
static

Definition at line 948 of file outfuncs.c.

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

Referenced by outNode().

949 {
950  WRITE_NODE_TYPE("LOCKROWS");
951 
952  _outPlanInfo(str, (const Plan *) node);
953 
954  WRITE_NODE_FIELD(rowMarks);
955  WRITE_INT_FIELD(epqParam);
956 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outLockRowsPath ( StringInfo  str,
const LockRowsPath node 
)
static

Definition at line 2075 of file outfuncs.c.

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

Referenced by outNode().

2076 {
2077  WRITE_NODE_TYPE("LOCKROWSPATH");
2078 
2079  _outPathInfo(str, (const Path *) node);
2080 
2082  WRITE_NODE_FIELD(rowMarks);
2083  WRITE_INT_FIELD(epqParam);
2084 }
#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:1710
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMaterial ( StringInfo  str,
const Material node 
)
static

Definition at line 854 of file outfuncs.c.

References _outPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

855 {
856  WRITE_NODE_TYPE("MATERIAL");
857 
858  _outPlanInfo(str, (const Plan *) node);
859 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outMaterialPath ( StringInfo  str,
const MaterialPath node 
)
static

Definition at line 1883 of file outfuncs.c.

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

Referenced by outNode().

1884 {
1885  WRITE_NODE_TYPE("MATERIALPATH");
1886 
1887  _outPathInfo(str, (const Path *) node);
1888 
1890 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMergeAppend ( StringInfo  str,
const MergeAppend node 
)
static

Definition at line 400 of file outfuncs.c.

References _outPlanInfo(), appendStringInfo(), appendStringInfoString(), booltostr, MergeAppend::collations, i, MergeAppend::nullsFirst, MergeAppend::numCols, MergeAppend::sortColIdx, MergeAppend::sortOperators, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

401 {
402  int i;
403 
404  WRITE_NODE_TYPE("MERGEAPPEND");
405 
406  _outPlanInfo(str, (const Plan *) node);
407 
408  WRITE_NODE_FIELD(partitioned_rels);
409  WRITE_NODE_FIELD(mergeplans);
410 
411  WRITE_INT_FIELD(numCols);
412 
413  appendStringInfoString(str, " :sortColIdx");
414  for (i = 0; i < node->numCols; i++)
415  appendStringInfo(str, " %d", node->sortColIdx[i]);
416 
417  appendStringInfoString(str, " :sortOperators");
418  for (i = 0; i < node->numCols; i++)
419  appendStringInfo(str, " %u", node->sortOperators[i]);
420 
421  appendStringInfoString(str, " :collations");
422  for (i = 0; i < node->numCols; i++)
423  appendStringInfo(str, " %u", node->collations[i]);
424 
425  appendStringInfoString(str, " :nullsFirst");
426  for (i = 0; i < node->numCols; i++)
427  appendStringInfo(str, " %s", booltostr(node->nullsFirst[i]));
428 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
Oid * collations
Definition: plannodes.h:268
#define booltostr(x)
Definition: outfuncs.c:104
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
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:266
bool * nullsFirst
Definition: plannodes.h:269
int i
Oid * sortOperators
Definition: plannodes.h:267
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMergeAppendPath ( StringInfo  str,
const MergeAppendPath node 
)
static

Definition at line 1861 of file outfuncs.c.

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

Referenced by outNode().

1862 {
1863  WRITE_NODE_TYPE("MERGEAPPENDPATH");
1864 
1865  _outPathInfo(str, (const Path *) node);
1866 
1867  WRITE_NODE_FIELD(partitioned_rels);
1868  WRITE_NODE_FIELD(subpaths);
1869  WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
1870 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMergeJoin ( StringInfo  str,
const MergeJoin node 
)
static

Definition at line 730 of file outfuncs.c.

References _outJoinPlanInfo(), appendStringInfo(), appendStringInfoString(), booltostr, i, list_length(), MergeJoin::mergeclauses, MergeJoin::mergeCollations, MergeJoin::mergeFamilies, MergeJoin::mergeNullsFirst, MergeJoin::mergeStrategies, WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

731 {
732  int numCols;
733  int i;
734 
735  WRITE_NODE_TYPE("MERGEJOIN");
736 
737  _outJoinPlanInfo(str, (const Join *) node);
738 
739  WRITE_BOOL_FIELD(skip_mark_restore);
740  WRITE_NODE_FIELD(mergeclauses);
741 
742  numCols = list_length(node->mergeclauses);
743 
744  appendStringInfoString(str, " :mergeFamilies");
745  for (i = 0; i < numCols; i++)
746  appendStringInfo(str, " %u", node->mergeFamilies[i]);
747 
748  appendStringInfoString(str, " :mergeCollations");
749  for (i = 0; i < numCols; i++)
750  appendStringInfo(str, " %u", node->mergeCollations[i]);
751 
752  appendStringInfoString(str, " :mergeStrategies");
753  for (i = 0; i < numCols; i++)
754  appendStringInfo(str, " %d", node->mergeStrategies[i]);
755 
756  appendStringInfoString(str, " :mergeNullsFirst");
757  for (i = 0; i < numCols; i++)
758  appendStringInfo(str, " %s", booltostr(node->mergeNullsFirst[i]));
759 }
#define booltostr(x)
Definition: outfuncs.c:104
List * mergeclauses
Definition: plannodes.h:711
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:323
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:80
Oid * mergeFamilies
Definition: plannodes.h:713
Oid * mergeCollations
Definition: plannodes.h:714
bool * mergeNullsFirst
Definition: plannodes.h:716
int * mergeStrategies
Definition: plannodes.h:715
#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:94
static void _outMergePath ( StringInfo  str,
const MergePath node 
)
static

Definition at line 2139 of file outfuncs.c.

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

Referenced by outNode().

2140 {
2141  WRITE_NODE_TYPE("MERGEPATH");
2142 
2143  _outJoinPathInfo(str, (const JoinPath *) node);
2144 
2145  WRITE_NODE_FIELD(path_mergeclauses);
2146  WRITE_NODE_FIELD(outersortkeys);
2147  WRITE_NODE_FIELD(innersortkeys);
2148  WRITE_BOOL_FIELD(skip_mark_restore);
2149  WRITE_BOOL_FIELD(materialize_inner);
2150 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1735
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMinMaxAggInfo ( StringInfo  str,
const MinMaxAggInfo node 
)
static

Definition at line 2535 of file outfuncs.c.

References WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

2536 {
2537  WRITE_NODE_TYPE("MINMAXAGGINFO");
2538 
2539  WRITE_OID_FIELD(aggfnoid);
2540  WRITE_OID_FIELD(aggsortop);
2541  WRITE_NODE_FIELD(target);
2542  /* We intentionally omit subroot --- too large, not interesting enough */
2543  WRITE_NODE_FIELD(path);
2544  WRITE_FLOAT_FIELD(pathcost, "%.2f");
2545  WRITE_NODE_FIELD(param);
2546 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMinMaxAggPath ( StringInfo  str,
const MinMaxAggPath node 
)
static

Definition at line 2022 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2023 {
2024  WRITE_NODE_TYPE("MINMAXAGGPATH");
2025 
2026  _outPathInfo(str, (const Path *) node);
2027 
2028  WRITE_NODE_FIELD(mmaggregates);
2029  WRITE_NODE_FIELD(quals);
2030 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMinMaxExpr ( StringInfo  str,
const MinMaxExpr node 
)
static

Definition at line 1508 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().

1509 {
1510  WRITE_NODE_TYPE("MINMAX");
1511 
1512  WRITE_OID_FIELD(minmaxtype);
1513  WRITE_OID_FIELD(minmaxcollid);
1514  WRITE_OID_FIELD(inputcollid);
1517  WRITE_LOCATION_FIELD(location);
1518 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
MinMaxOp
Definition: primnodes.h:1054
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outModifyTable ( StringInfo  str,
const ModifyTable node 
)
static

Definition at line 360 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().

361 {
362  WRITE_NODE_TYPE("MODIFYTABLE");
363 
364  _outPlanInfo(str, (const Plan *) node);
365 
366  WRITE_ENUM_FIELD(operation, CmdType);
367  WRITE_BOOL_FIELD(canSetTag);
368  WRITE_UINT_FIELD(nominalRelation);
369  WRITE_NODE_FIELD(partitioned_rels);
370  WRITE_NODE_FIELD(resultRelations);
371  WRITE_INT_FIELD(resultRelIndex);
372  WRITE_INT_FIELD(rootResultRelIndex);
373  WRITE_NODE_FIELD(plans);
374  WRITE_NODE_FIELD(withCheckOptionLists);
375  WRITE_NODE_FIELD(returningLists);
376  WRITE_NODE_FIELD(fdwPrivLists);
377  WRITE_BITMAPSET_FIELD(fdwDirectModifyPlans);
378  WRITE_NODE_FIELD(rowMarks);
379  WRITE_INT_FIELD(epqParam);
380  WRITE_ENUM_FIELD(onConflictAction, OnConflictAction);
381  WRITE_NODE_FIELD(arbiterIndexes);
382  WRITE_NODE_FIELD(onConflictSet);
383  WRITE_NODE_FIELD(onConflictWhere);
384  WRITE_UINT_FIELD(exclRelRTI);
385  WRITE_NODE_FIELD(exclRelTlist);
386 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
OnConflictAction
Definition: nodes.h:799
CmdType
Definition: nodes.h:649
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outModifyTablePath ( StringInfo  str,
const ModifyTablePath node 
)
static

Definition at line 2087 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().

2088 {
2089  WRITE_NODE_TYPE("MODIFYTABLEPATH");
2090 
2091  _outPathInfo(str, (const Path *) node);
2092 
2093  WRITE_ENUM_FIELD(operation, CmdType);
2094  WRITE_BOOL_FIELD(canSetTag);
2095  WRITE_UINT_FIELD(nominalRelation);
2096  WRITE_NODE_FIELD(partitioned_rels);
2097  WRITE_NODE_FIELD(resultRelations);
2098  WRITE_NODE_FIELD(subpaths);
2099  WRITE_NODE_FIELD(subroots);
2100  WRITE_NODE_FIELD(withCheckOptionLists);
2101  WRITE_NODE_FIELD(returningLists);
2102  WRITE_NODE_FIELD(rowMarks);
2103  WRITE_NODE_FIELD(onconflict);
2104  WRITE_INT_FIELD(epqParam);
2105 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
CmdType
Definition: nodes.h:649
Definition: relation.h:948
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outMultiAssignRef ( StringInfo  str,
const MultiAssignRef node 
)
static

Definition at line 3320 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3321 {
3322  WRITE_NODE_TYPE("MULTIASSIGNREF");
3323 
3324  WRITE_NODE_FIELD(source);
3325  WRITE_INT_FIELD(colno);
3326  WRITE_INT_FIELD(ncolumns);
3327 }
#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:94
static void _outNamedArgExpr ( StringInfo  str,
const NamedArgExpr node 
)
static

Definition at line 1202 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().

1203 {
1204  WRITE_NODE_TYPE("NAMEDARGEXPR");
1205 
1208  WRITE_INT_FIELD(argnumber);
1209  WRITE_LOCATION_FIELD(location);
1210 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outNamedTuplestoreScan ( StringInfo  str,
const NamedTuplestoreScan node 
)
static

Definition at line 657 of file outfuncs.c.

References _outScanInfo(), WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

658 {
659  WRITE_NODE_TYPE("NAMEDTUPLESTORESCAN");
660 
661  _outScanInfo(str, (const Scan *) node);
662 
663  WRITE_STRING_FIELD(enrname);
664 }
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:312
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
static void _outNestLoop ( StringInfo  str,
const NestLoop node 
)
static

Definition at line 720 of file outfuncs.c.

References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

721 {
722  WRITE_NODE_TYPE("NESTLOOP");
723 
724  _outJoinPlanInfo(str, (const Join *) node);
725 
726  WRITE_NODE_FIELD(nestParams);
727 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:323
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outNestLoopParam ( StringInfo  str,
const NestLoopParam node 
)
static

Definition at line 970 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

971 {
972  WRITE_NODE_TYPE("NESTLOOPPARAM");
973 
974  WRITE_INT_FIELD(paramno);
975  WRITE_NODE_FIELD(paramval);
976 }
#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:94
static void _outNestPath ( StringInfo  str,
const NestPath node 
)
static

Definition at line 2131 of file outfuncs.c.

References _outJoinPathInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

2132 {
2133  WRITE_NODE_TYPE("NESTPATH");
2134 
2135  _outJoinPathInfo(str, (const JoinPath *) node);
2136 }
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1735
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outNextValueExpr ( StringInfo  str,
const NextValueExpr node 
)
static

Definition at line 1614 of file outfuncs.c.

References WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1615 {
1616  WRITE_NODE_TYPE("NEXTVALUEEXPR");
1617 
1618  WRITE_OID_FIELD(seqid);
1619  WRITE_OID_FIELD(typeId);
1620 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outNotifyStmt ( StringInfo  str,
const NotifyStmt node 
)
static

Definition at line 2674 of file outfuncs.c.

References WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2675 {
2676  WRITE_NODE_TYPE("NOTIFY");
2677 
2678  WRITE_STRING_FIELD(conditionname);
2679  WRITE_STRING_FIELD(payload);
2680 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
static void _outNullIfExpr ( StringInfo  str,
const NullIfExpr node 
)
static

Definition at line 1243 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().

1244 {
1245  WRITE_NODE_TYPE("NULLIFEXPR");
1246 
1247  WRITE_OID_FIELD(opno);
1248  WRITE_OID_FIELD(opfuncid);
1249  WRITE_OID_FIELD(opresulttype);
1250  WRITE_BOOL_FIELD(opretset);
1251  WRITE_OID_FIELD(opcollid);
1252  WRITE_OID_FIELD(inputcollid);
1254  WRITE_LOCATION_FIELD(location);
1255 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outNullTest ( StringInfo  str,
const NullTest node 
)
static

Definition at line 1548 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().

1549 {
1550  WRITE_NODE_TYPE("NULLTEST");
1551 
1553  WRITE_ENUM_FIELD(nulltesttype, NullTestType);
1554  WRITE_BOOL_FIELD(argisrow);
1555  WRITE_LOCATION_FIELD(location);
1556 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
NullTestType
Definition: primnodes.h:1172
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outOnConflictExpr ( StringInfo  str,
const OnConflictExpr node 
)
static

Definition at line 1679 of file outfuncs.c.

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

Referenced by outNode().

1680 {
1681  WRITE_NODE_TYPE("ONCONFLICTEXPR");
1682 
1684  WRITE_NODE_FIELD(arbiterElems);
1685  WRITE_NODE_FIELD(arbiterWhere);
1686  WRITE_OID_FIELD(constraint);
1687  WRITE_NODE_FIELD(onConflictSet);
1688  WRITE_NODE_FIELD(onConflictWhere);
1689  WRITE_INT_FIELD(exclRelIndex);
1690  WRITE_NODE_FIELD(exclRelTlist);
1691 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
OnConflictAction
Definition: nodes.h:799
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outOpExpr ( StringInfo  str,
const OpExpr node 
)
static

Definition at line 1213 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().

1214 {
1215  WRITE_NODE_TYPE("OPEXPR");
1216 
1217  WRITE_OID_FIELD(opno);
1218  WRITE_OID_FIELD(opfuncid);
1219  WRITE_OID_FIELD(opresulttype);
1220  WRITE_BOOL_FIELD(opretset);
1221  WRITE_OID_FIELD(opcollid);
1222  WRITE_OID_FIELD(inputcollid);
1224  WRITE_LOCATION_FIELD(location);
1225 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outParam ( StringInfo  str,
const Param node 
)
static

Definition at line 1105 of file outfuncs.c.

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

Referenced by outNode().

1106 {
1107  WRITE_NODE_TYPE("PARAM");
1108 
1109  WRITE_ENUM_FIELD(paramkind, ParamKind);
1110  WRITE_INT_FIELD(paramid);
1111  WRITE_OID_FIELD(paramtype);
1112  WRITE_INT_FIELD(paramtypmod);
1113  WRITE_OID_FIELD(paramcollid);
1114  WRITE_LOCATION_FIELD(location);
1115 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
ParamKind
Definition: primnodes.h:233
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outParamPathInfo ( StringInfo  str,
const ParamPathInfo node 
)
static

Definition at line 2429 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2430 {
2431  WRITE_NODE_TYPE("PARAMPATHINFO");
2432 
2433  WRITE_BITMAPSET_FIELD(ppi_req_outer);
2434  WRITE_FLOAT_FIELD(ppi_rows, "%.0f");
2435  WRITE_NODE_FIELD(ppi_clauses);
2436 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outParamRef ( StringInfo  str,
const ParamRef node 
)
static

Definition at line 3256 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3257 {
3258  WRITE_NODE_TYPE("PARAMREF");
3259 
3260  WRITE_INT_FIELD(number);
3261  WRITE_LOCATION_FIELD(location);
3262 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPartitionBoundSpec ( StringInfo  str,
const PartitionBoundSpec node 
)
static

Definition at line 3569 of file outfuncs.c.

References WRITE_CHAR_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3570 {
3571  WRITE_NODE_TYPE("PARTITIONBOUNDSPEC");
3572 
3573  WRITE_CHAR_FIELD(strategy);
3574  WRITE_NODE_FIELD(listdatums);
3575  WRITE_NODE_FIELD(lowerdatums);
3576  WRITE_NODE_FIELD(upperdatums);
3577  WRITE_LOCATION_FIELD(location);
3578 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:66
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPartitionedChildRelInfo ( StringInfo  str,
const PartitionedChildRelInfo node 
)
static

Definition at line 2513 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2514 {
2515  WRITE_NODE_TYPE("PARTITIONEDCHILDRELINFO");
2516 
2517  WRITE_UINT_FIELD(parent_relid);
2518  WRITE_NODE_FIELD(child_rels);
2519 }
#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:94
static void _outPartitionElem ( StringInfo  str,
const PartitionElem node 
)
static

Definition at line 3547 of file outfuncs.c.

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

Referenced by outNode().

3548 {
3549  WRITE_NODE_TYPE("PARTITIONELEM");
3550 
3552  WRITE_NODE_FIELD(expr);
3553  WRITE_NODE_FIELD(collation);
3554  WRITE_NODE_FIELD(opclass);
3555  WRITE_LOCATION_FIELD(location);
3556 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPartitionRangeDatum ( StringInfo  str,
const PartitionRangeDatum node 
)
static

Definition at line 3581 of file outfuncs.c.

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

Referenced by outNode().

3582 {
3583  WRITE_NODE_TYPE("PARTITIONRANGEDATUM");
3584 
3587  WRITE_LOCATION_FIELD(location);
3588 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
PartitionRangeDatumKind
Definition: parsenodes.h:816
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
static struct @121 value
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPartitionSpec ( StringInfo  str,
const PartitionSpec node 
)
static

Definition at line 3559 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

3560 {
3561  WRITE_NODE_TYPE("PARTITIONSPEC");
3562 
3563  WRITE_STRING_FIELD(strategy);
3564  WRITE_NODE_FIELD(partParams);
3565  WRITE_LOCATION_FIELD(location);
3566 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:85
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPath ( StringInfo  str,
const Path node 
)
static

Definition at line 1747 of file outfuncs.c.

References _outPathInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

1748 {
1749  WRITE_NODE_TYPE("PATH");
1750 
1751  _outPathInfo(str, (const Path *) node);
1752 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1710
Definition: relation.h:948
static void _outPathInfo ( StringInfo  str,
const Path node 
)
static

Definition at line 1710 of file outfuncs.c.

References appendStringInfoString(), NULL, 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().

1711 {
1712  WRITE_ENUM_FIELD(pathtype, NodeTag);
1713  appendStringInfoString(str, " :parent_relids ");
1714  outBitmapset(str, node->parent->relids);
1715  if (node->pathtarget != node->parent->reltarget)
1716  WRITE_NODE_FIELD(pathtarget);
1717  appendStringInfoString(str, " :required_outer ");
1718  if (node->param_info)
1719  outBitmapset(str, node->param_info->ppi_req_outer);
1720  else
1721  outBitmapset(str, NULL);
1722  WRITE_BOOL_FIELD(parallel_aware);
1723  WRITE_BOOL_FIELD(parallel_safe);
1724  WRITE_INT_FIELD(parallel_workers);
1725  WRITE_FLOAT_FIELD(rows, "%.0f");
1726  WRITE_FLOAT_FIELD(startup_cost, "%.2f");
1727  WRITE_FLOAT_FIELD(total_cost, "%.2f");
1728  WRITE_NODE_FIELD(pathkeys);
1729 }
PathTarget * pathtarget
Definition: relation.h:955
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
ParamPathInfo * param_info
Definition: relation.h:957
NodeTag
Definition: nodes.h:26
RelOptInfo * parent
Definition: relation.h:954
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:157
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
Relids relids
Definition: relation.h:525
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define NULL
Definition: c.h:229
void outBitmapset(StringInfo str, const Bitmapset *bms)
Definition: outfuncs.c:205
Relids ppi_req_outer
Definition: relation.h:913
struct PathTarget * reltarget
Definition: relation.h:536
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPathKey ( StringInfo  str,
const PathKey node 
)
static

Definition at line 2399 of file outfuncs.c.

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

Referenced by outNode().

2400 {
2401  WRITE_NODE_TYPE("PATHKEY");
2402 
2403  WRITE_NODE_FIELD(pk_eclass);
2404  WRITE_OID_FIELD(pk_opfamily);
2405  WRITE_INT_FIELD(pk_strategy);
2406  WRITE_BOOL_FIELD(pk_nulls_first);
2407 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:58
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPathTarget ( StringInfo  str,
const PathTarget node 
)
static

Definition at line 2410 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().

2411 {
2412  WRITE_NODE_TYPE("PATHTARGET");
2413 
2414  WRITE_NODE_FIELD(exprs);
2415  if (node->sortgrouprefs)
2416  {
2417  int i;
2418 
2419  appendStringInfoString(str, " :sortgrouprefs");
2420  for (i = 0; i < list_length(node->exprs); i++)
2421  appendStringInfo(str, " %u", node->sortgrouprefs[i]);
2422  }
2423  WRITE_FLOAT_FIELD(cost.startup, "%.2f");
2424  WRITE_FLOAT_FIELD(cost.per_tuple, "%.2f");
2425  WRITE_INT_FIELD(width);
2426 }
#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:885
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
List * exprs
Definition: relation.h:884
#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:94
static void _outPlaceHolderInfo ( StringInfo  str,
const PlaceHolderInfo node 
)
static

Definition at line 2522 of file outfuncs.c.

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

Referenced by outNode().

2523 {
2524  WRITE_NODE_TYPE("PLACEHOLDERINFO");
2525 
2526  WRITE_UINT_FIELD(phid);
2527  WRITE_NODE_FIELD(ph_var);
2528  WRITE_BITMAPSET_FIELD(ph_eval_at);
2529  WRITE_BITMAPSET_FIELD(ph_lateral);
2530  WRITE_BITMAPSET_FIELD(ph_needed);
2531  WRITE_INT_FIELD(ph_width);
2532 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#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:94
static void _outPlaceHolderVar ( StringInfo  str,
const PlaceHolderVar node 
)
static

Definition at line 2471 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2472 {
2473  WRITE_NODE_TYPE("PLACEHOLDERVAR");
2474 
2475  WRITE_NODE_FIELD(phexpr);
2476  WRITE_BITMAPSET_FIELD(phrels);
2477  WRITE_UINT_FIELD(phid);
2478  WRITE_UINT_FIELD(phlevelsup);
2479 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#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:94
static void _outPlan ( StringInfo  str,
const Plan node 
)
static

Definition at line 334 of file outfuncs.c.

References _outPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

335 {
336  WRITE_NODE_TYPE("PLAN");
337 
338  _outPlanInfo(str, (const Plan *) node);
339 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:290
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
static void _outPlanInfo ( StringInfo  str,
const Plan node 
)
static

Definition at line 290 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, and WRITE_NODE_FIELD.

Referenced by _outAgg(), _outAppend(), _outBitmapAnd(), _outBitmapOr(), _outGather(), _outGatherMerge(), _outGroup(), _outHash(), _outJoinPlanInfo(), _outLimit(), _outLockRows(), _outMaterial(), _outMergeAppend(), _outModifyTable(), _outPlan(), _outProjectSet(), _outRecursiveUnion(), _outResult(), _outScanInfo(), _outSetOp(), _outSort(), _outUnique(), and _outWindowAgg().

291 {
292  WRITE_FLOAT_FIELD(startup_cost, "%.2f");
293  WRITE_FLOAT_FIELD(total_cost, "%.2f");
294  WRITE_FLOAT_FIELD(plan_rows, "%.0f");
295  WRITE_INT_FIELD(plan_width);
296  WRITE_BOOL_FIELD(parallel_aware);
297  WRITE_BOOL_FIELD(parallel_safe);
298  WRITE_INT_FIELD(plan_node_id);
299  WRITE_NODE_FIELD(targetlist);
300  WRITE_NODE_FIELD(qual);
301  WRITE_NODE_FIELD(lefttree);
302  WRITE_NODE_FIELD(righttree);
303  WRITE_NODE_FIELD(initPlan);
304  WRITE_BITMAPSET_FIELD(extParam);
305  WRITE_BITMAPSET_FIELD(allParam);
306 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:76
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPlanInvalItem ( StringInfo  str,
const PlanInvalItem node 
)
static

Definition at line 994 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

995 {
996  WRITE_NODE_TYPE("PLANINVALITEM");
997 
998  WRITE_INT_FIELD(cacheId);
999  WRITE_UINT_FIELD(hashValue);
1000 }
#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
static void _outPlannedStmt ( StringInfo  str,
const PlannedStmt node 
)
static

Definition at line 258 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

259 {
260  WRITE_NODE_TYPE("PLANNEDSTMT");
261 
262  WRITE_ENUM_FIELD(commandType, CmdType);
263  WRITE_UINT_FIELD(queryId);
264  WRITE_BOOL_FIELD(hasReturning);
265  WRITE_BOOL_FIELD(hasModifyingCTE);
266  WRITE_BOOL_FIELD(canSetTag);
267  WRITE_BOOL_FIELD(transientPlan);
268  WRITE_BOOL_FIELD(dependsOnRole);
269  WRITE_BOOL_FIELD(parallelModeNeeded);
270  WRITE_NODE_FIELD(planTree);
271  WRITE_NODE_FIELD(rtable);
272  WRITE_NODE_FIELD(resultRelations);
273  WRITE_NODE_FIELD(nonleafResultRelations);
274  WRITE_NODE_FIELD(rootResultRelations);
275  WRITE_NODE_FIELD(subplans);
276  WRITE_BITMAPSET_FIELD(rewindPlanIDs);
277  WRITE_NODE_FIELD(rowMarks);
278  WRITE_NODE_FIELD(relationOids);
279  WRITE_NODE_FIELD(invalItems);
280  WRITE_INT_FIELD(nParamExec);
281  WRITE_NODE_FIELD(utilityStmt);
282  WRITE_LOCATION_FIELD(stmt_location);
283  WRITE_LOCATION_FIELD(stmt_len);
284 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:50
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:90
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:99
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:71
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:54
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:80
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:46
CmdType
Definition: nodes.h:649
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:94
static void _outPlannerGlobal ( StringInfo  str,
const PlannerGlobal node 
)
static