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)   appendStringInfo(str, " :" CppAsString(fldname) " %c", node->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

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 _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 _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 _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 _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 _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 _outPartitionSpec (StringInfo str, const PartitionSpec *node)
 
static void _outPartitionElem (StringInfo str, const PartitionElem *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 101 of file outfuncs.c.

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

#define WRITE_BITMAPSET_FIELD (   fldname)
Value:
(appendStringInfo(str, " :" CppAsString(fldname) " "), \
outBitmapset(str, node->fldname))
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void outBitmapset(StringInfo str, const Bitmapset *bms)
Definition: outfuncs.c:187
#define CppAsString(identifier)
Definition: c.h:161

Definition at line 96 of file outfuncs.c.

Referenced by _outAgg(), _outCustomScan(), _outEquivalenceClass(), _outEquivalenceMember(), _outForeignScan(), _outModifyTable(), _outParamPathInfo(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlanInfo(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outRangeTblEntry(), _outRangeTblFunction(), _outRelOptInfo(), _outRestrictInfo(), _outSpecialJoinInfo(), and _outTableFunc().

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

Definition at line 77 of file outfuncs.c.

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

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

Definition at line 60 of file outfuncs.c.

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

#define WRITE_NODE_FIELD (   fldname)
Value:
(appendStringInfo(str, " :" CppAsString(fldname) " "), \
outNode(str, node->fldname))
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void outNode(StringInfo str, const void *obj)
Definition: outfuncs.c:3482
#define CppAsString(identifier)
Definition: c.h:161

Definition at line 91 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(), _outCreateStmtInfo(), _outCustomPath(), _outCustomScan(), _outDeclareCursorStmt(), _outDefElem(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outFieldSelect(), _outFieldStore(), _outForeignPath(), _outForeignScan(), _outFromExpr(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outGatherMergePath(), _outGatherPath(), _outGroupingFunc(), _outGroupingSet(), _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(), _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 44 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(), _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(), _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(), _outNestLoop(), _outNestLoopParam(), _outNestPath(), _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(), _outRowCompareExpr(), _outRowExpr(), _outRowMarkClause(), _outSampleScan(), _outScalarArrayOpExpr(), _outScan(), _outSelectStmt(), _outSeqScan(), _outSetOp(), _outSetOperationStmt(), _outSetOpPath(), _outSetToDefault(), _outSort(), _outSortBy(), _outSortGroupClause(), _outSortPath(), _outSpecialJoinInfo(), _outSQLValueFunction(), _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 3196 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3197 {
3198  WRITE_NODE_TYPE("A_ARRAYEXPR");
3199 
3200  WRITE_NODE_FIELD(elements);
3201  WRITE_LOCATION_FIELD(location);
3202 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outA_Indices ( StringInfo  str,
const A_Indices node 
)
static

Definition at line 3177 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3178 {
3179  WRITE_NODE_TYPE("A_INDICES");
3180 
3181  WRITE_BOOL_FIELD(is_slice);
3182  WRITE_NODE_FIELD(lidx);
3183  WRITE_NODE_FIELD(uidx);
3184 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outA_Indirection ( StringInfo  str,
const A_Indirection node 
)
static

Definition at line 3187 of file outfuncs.c.

References arg, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3188 {
3189  WRITE_NODE_TYPE("A_INDIRECTION");
3190 
3192  WRITE_NODE_FIELD(indirection);
3193 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outA_Star ( StringInfo  str,
const A_Star node 
)
static

Definition at line 3171 of file outfuncs.c.

References WRITE_NODE_TYPE.

Referenced by outNode().

3172 {
3173  WRITE_NODE_TYPE("A_STAR");
3174 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outAConst ( StringInfo  str,
const A_Const node 
)
static

Definition at line 3161 of file outfuncs.c.

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

Referenced by outNode().

3162 {
3163  WRITE_NODE_TYPE("A_CONST");
3164 
3165  appendStringInfoString(str, " :val ");
3166  _outValue(str, &(node->val));
3167  WRITE_LOCATION_FIELD(location);
3168 }
static void _outValue(StringInfo str, const Value *value)
Definition: outfuncs.c:3102
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
Value val
Definition: parsenodes.h:279
static void _outAExpr ( StringInfo  str,
const A_Expr node 
)
static

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

3021 {
3022  WRITE_NODE_TYPE("AEXPR");
3023 
3024  switch (node->kind)
3025  {
3026  case AEXPR_OP:
3027  appendStringInfoChar(str, ' ');
3029  break;
3030  case AEXPR_OP_ANY:
3031  appendStringInfoChar(str, ' ');
3033  appendStringInfoString(str, " ANY ");
3034  break;
3035  case AEXPR_OP_ALL:
3036  appendStringInfoChar(str, ' ');
3038  appendStringInfoString(str, " ALL ");
3039  break;
3040  case AEXPR_DISTINCT:
3041  appendStringInfoString(str, " DISTINCT ");
3043  break;
3044  case AEXPR_NOT_DISTINCT:
3045  appendStringInfoString(str, " NOT_DISTINCT ");
3047  break;
3048  case AEXPR_NULLIF:
3049  appendStringInfoString(str, " NULLIF ");
3051  break;
3052  case AEXPR_OF:
3053  appendStringInfoString(str, " OF ");
3055  break;
3056  case AEXPR_IN:
3057  appendStringInfoString(str, " IN ");
3059  break;
3060  case AEXPR_LIKE:
3061  appendStringInfoString(str, " LIKE ");
3063  break;
3064  case AEXPR_ILIKE:
3065  appendStringInfoString(str, " ILIKE ");
3067  break;
3068  case AEXPR_SIMILAR:
3069  appendStringInfoString(str, " SIMILAR ");
3071  break;
3072  case AEXPR_BETWEEN:
3073  appendStringInfoString(str, " BETWEEN ");
3075  break;
3076  case AEXPR_NOT_BETWEEN:
3077  appendStringInfoString(str, " NOT_BETWEEN ");
3079  break;
3080  case AEXPR_BETWEEN_SYM:
3081  appendStringInfoString(str, " BETWEEN_SYM ");
3083  break;
3084  case AEXPR_NOT_BETWEEN_SYM:
3085  appendStringInfoString(str, " NOT_BETWEEN_SYM ");
3087  break;
3088  case AEXPR_PAREN:
3089  appendStringInfoString(str, " PAREN");
3090  break;
3091  default:
3092  appendStringInfoString(str, " ??");
3093  break;
3094  }
3095 
3096  WRITE_NODE_FIELD(lexpr);
3097  WRITE_NODE_FIELD(rexpr);
3098  WRITE_LOCATION_FIELD(location);
3099 }
A_Expr_Kind kind
Definition: parsenodes.h:266
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
void appendStringInfoChar(StringInfo str, char ch)
Definition: stringinfo.c:201
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
const char * name
Definition: encode.c:521
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAgg ( StringInfo  str,
const Agg node 
)
static

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

740 {
741  int i;
742 
743  WRITE_NODE_TYPE("AGG");
744 
745  _outPlanInfo(str, (const Plan *) node);
746 
747  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
748  WRITE_ENUM_FIELD(aggsplit, AggSplit);
749  WRITE_INT_FIELD(numCols);
750 
751  appendStringInfoString(str, " :grpColIdx");
752  for (i = 0; i < node->numCols; i++)
753  appendStringInfo(str, " %d", node->grpColIdx[i]);
754 
755  appendStringInfoString(str, " :grpOperators");
756  for (i = 0; i < node->numCols; i++)
757  appendStringInfo(str, " %u", node->grpOperators[i]);
758 
759  WRITE_LONG_FIELD(numGroups);
760  WRITE_BITMAPSET_FIELD(aggParams);
761  WRITE_NODE_FIELD(groupingSets);
762  WRITE_NODE_FIELD(chain);
763 }
int numCols
Definition: plannodes.h:756
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
AttrNumber * grpColIdx
Definition: plannodes.h:757
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_LONG_FIELD(fldname)
Definition: outfuncs.c:60
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
AggSplit
Definition: nodes.h:760
AggStrategy
Definition: nodes.h:739
Oid * grpOperators
Definition: plannodes.h:758
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAggPath ( StringInfo  str,
const AggPath node 
)
static

Definition at line 1930 of file outfuncs.c.

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

Referenced by outNode().

1931 {
1932  WRITE_NODE_TYPE("AGGPATH");
1933 
1934  _outPathInfo(str, (const Path *) node);
1935 
1937  WRITE_ENUM_FIELD(aggstrategy, AggStrategy);
1938  WRITE_ENUM_FIELD(aggsplit, AggSplit);
1939  WRITE_FLOAT_FIELD(numGroups, "%.0f");
1940  WRITE_NODE_FIELD(groupClause);
1941  WRITE_NODE_FIELD(qual);
1942 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
AggSplit
Definition: nodes.h:760
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
AggStrategy
Definition: nodes.h:739
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAggref ( StringInfo  str,
const Aggref node 
)
static

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

1088 {
1089  WRITE_NODE_TYPE("AGGREF");
1090 
1091  WRITE_OID_FIELD(aggfnoid);
1092  WRITE_OID_FIELD(aggtype);
1093  WRITE_OID_FIELD(aggcollid);
1094  WRITE_OID_FIELD(inputcollid);
1095  WRITE_OID_FIELD(aggtranstype);
1096  WRITE_NODE_FIELD(aggargtypes);
1097  WRITE_NODE_FIELD(aggdirectargs);
1099  WRITE_NODE_FIELD(aggorder);
1100  WRITE_NODE_FIELD(aggdistinct);
1101  WRITE_NODE_FIELD(aggfilter);
1102  WRITE_BOOL_FIELD(aggstar);
1103  WRITE_BOOL_FIELD(aggvariadic);
1104  WRITE_CHAR_FIELD(aggkind);
1105  WRITE_UINT_FIELD(agglevelsup);
1106  WRITE_ENUM_FIELD(aggsplit, AggSplit);
1107  WRITE_LOCATION_FIELD(location);
1108 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:64
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
AggSplit
Definition: nodes.h:760
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAlias ( StringInfo  str,
const Alias node 
)
static

Definition at line 978 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

979 {
980  WRITE_NODE_TYPE("ALIAS");
981 
982  WRITE_STRING_FIELD(aliasname);
983  WRITE_NODE_FIELD(colnames);
984 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAlternativeSubPlan ( StringInfo  str,
const AlternativeSubPlan node 
)
static

Definition at line 1303 of file outfuncs.c.

References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1304 {
1305  WRITE_NODE_TYPE("ALTERNATIVESUBPLAN");
1306 
1307  WRITE_NODE_FIELD(subplans);
1308 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAppend ( StringInfo  str,
const Append node 
)
static

Definition at line 367 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

368 {
369  WRITE_NODE_TYPE("APPEND");
370 
371  _outPlanInfo(str, (const Plan *) node);
372 
373  WRITE_NODE_FIELD(partitioned_rels);
374  WRITE_NODE_FIELD(appendplans);
375 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAppendPath ( StringInfo  str,
const AppendPath node 
)
static

Definition at line 1809 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1810 {
1811  WRITE_NODE_TYPE("APPENDPATH");
1812 
1813  _outPathInfo(str, (const Path *) node);
1814 
1815  WRITE_NODE_FIELD(partitioned_rels);
1816  WRITE_NODE_FIELD(subpaths);
1817 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outAppendRelInfo ( StringInfo  str,
const AppendRelInfo node 
)
static

Definition at line 2419 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

2420 {
2421  WRITE_NODE_TYPE("APPENDRELINFO");
2422 
2423  WRITE_UINT_FIELD(parent_relid);
2424  WRITE_UINT_FIELD(child_relid);
2425  WRITE_OID_FIELD(parent_reltype);
2426  WRITE_OID_FIELD(child_reltype);
2427  WRITE_NODE_FIELD(translated_vars);
2428  WRITE_OID_FIELD(parent_reloid);
2429 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outArrayCoerceExpr ( StringInfo  str,
const ArrayCoerceExpr node 
)
static

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

1360 {
1361  WRITE_NODE_TYPE("ARRAYCOERCEEXPR");
1362 
1364  WRITE_OID_FIELD(elemfuncid);
1365  WRITE_OID_FIELD(resulttype);
1366  WRITE_INT_FIELD(resulttypmod);
1367  WRITE_OID_FIELD(resultcollid);
1368  WRITE_BOOL_FIELD(isExplicit);
1369  WRITE_ENUM_FIELD(coerceformat, CoercionForm);
1370  WRITE_LOCATION_FIELD(location);
1371 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
CoercionForm
Definition: primnodes.h:435
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outArrayExpr ( StringInfo  str,
const ArrayExpr node 
)
static

Definition at line 1428 of file outfuncs.c.

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

Referenced by outNode().

1429 {
1430  WRITE_NODE_TYPE("ARRAY");
1431 
1432  WRITE_OID_FIELD(array_typeid);
1433  WRITE_OID_FIELD(array_collid);
1434  WRITE_OID_FIELD(element_typeid);
1435  WRITE_NODE_FIELD(elements);
1436  WRITE_BOOL_FIELD(multidims);
1437  WRITE_LOCATION_FIELD(location);
1438 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outArrayRef ( StringInfo  str,
const ArrayRef node 
)
static

Definition at line 1140 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1141 {
1142  WRITE_NODE_TYPE("ARRAYREF");
1143 
1144  WRITE_OID_FIELD(refarraytype);
1145  WRITE_OID_FIELD(refelemtype);
1146  WRITE_INT_FIELD(reftypmod);
1147  WRITE_OID_FIELD(refcollid);
1148  WRITE_NODE_FIELD(refupperindexpr);
1149  WRITE_NODE_FIELD(reflowerindexpr);
1150  WRITE_NODE_FIELD(refexpr);
1151  WRITE_NODE_FIELD(refassgnexpr);
1152 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapAnd ( StringInfo  str,
const BitmapAnd node 
)
static

Definition at line 432 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

433 {
434  WRITE_NODE_TYPE("BITMAPAND");
435 
436  _outPlanInfo(str, (const Plan *) node);
437 
438  WRITE_NODE_FIELD(bitmapplans);
439 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapAndPath ( StringInfo  str,
const BitmapAndPath node 
)
static

Definition at line 1742 of file outfuncs.c.

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

Referenced by outNode().

1743 {
1744  WRITE_NODE_TYPE("BITMAPANDPATH");
1745 
1746  _outPathInfo(str, (const Path *) node);
1747 
1748  WRITE_NODE_FIELD(bitmapquals);
1749  WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
1750 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapHeapPath ( StringInfo  str,
const BitmapHeapPath node 
)
static

Definition at line 1732 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1733 {
1734  WRITE_NODE_TYPE("BITMAPHEAPPATH");
1735 
1736  _outPathInfo(str, (const Path *) node);
1737 
1738  WRITE_NODE_FIELD(bitmapqual);
1739 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapHeapScan ( StringInfo  str,
const BitmapHeapScan node 
)
static

Definition at line 563 of file outfuncs.c.

References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

564 {
565  WRITE_NODE_TYPE("BITMAPHEAPSCAN");
566 
567  _outScanInfo(str, (const Scan *) node);
568 
569  WRITE_NODE_FIELD(bitmapqualorig);
570 }
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapIndexScan ( StringInfo  str,
const BitmapIndexScan node 
)
static

Definition at line 550 of file outfuncs.c.

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

Referenced by outNode().

551 {
552  WRITE_NODE_TYPE("BITMAPINDEXSCAN");
553 
554  _outScanInfo(str, (const Scan *) node);
555 
556  WRITE_OID_FIELD(indexid);
557  WRITE_BOOL_FIELD(isshared);
558  WRITE_NODE_FIELD(indexqual);
559  WRITE_NODE_FIELD(indexqualorig);
560 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapOr ( StringInfo  str,
const BitmapOr node 
)
static

Definition at line 442 of file outfuncs.c.

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

Referenced by outNode().

443 {
444  WRITE_NODE_TYPE("BITMAPOR");
445 
446  _outPlanInfo(str, (const Plan *) node);
447 
448  WRITE_BOOL_FIELD(isshared);
449  WRITE_NODE_FIELD(bitmapplans);
450 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBitmapOrPath ( StringInfo  str,
const BitmapOrPath node 
)
static

Definition at line 1753 of file outfuncs.c.

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

Referenced by outNode().

1754 {
1755  WRITE_NODE_TYPE("BITMAPORPATH");
1756 
1757  _outPathInfo(str, (const Path *) node);
1758 
1759  WRITE_NODE_FIELD(bitmapquals);
1760  WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f");
1761 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBooleanTest ( StringInfo  str,
const BooleanTest node 
)
static

Definition at line 1528 of file outfuncs.c.

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

Referenced by outNode().

1529 {
1530  WRITE_NODE_TYPE("BOOLEANTEST");
1531 
1533  WRITE_ENUM_FIELD(booltesttype, BoolTestType);
1534  WRITE_LOCATION_FIELD(location);
1535 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
BoolTestType
Definition: primnodes.h:1193
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outBoolExpr ( StringInfo  str,
const BoolExpr node 
)
static

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

1241 {
1242  char *opstr = NULL;
1243 
1244  WRITE_NODE_TYPE("BOOLEXPR");
1245 
1246  /* do-it-yourself enum representation */
1247  switch (node->boolop)
1248  {
1249  case AND_EXPR:
1250  opstr = "and";
1251  break;
1252  case OR_EXPR:
1253  opstr = "or";
1254  break;
1255  case NOT_EXPR:
1256  opstr = "not";
1257  break;
1258  }
1259  appendStringInfoString(str, " :boolop ");
1260  outToken(str, opstr);
1261 
1263  WRITE_LOCATION_FIELD(location);
1264 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:112
BoolExprType boolop
Definition: primnodes.h:561
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define NULL
Definition: c.h:229
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCaseExpr ( StringInfo  str,
const CaseExpr node 
)
static

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

1396 {
1397  WRITE_NODE_TYPE("CASE");
1398 
1399  WRITE_OID_FIELD(casetype);
1400  WRITE_OID_FIELD(casecollid);
1403  WRITE_NODE_FIELD(defresult);
1404  WRITE_LOCATION_FIELD(location);
1405 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCaseTestExpr ( StringInfo  str,
const CaseTestExpr node 
)
static

Definition at line 1418 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1419 {
1420  WRITE_NODE_TYPE("CASETESTEXPR");
1421 
1422  WRITE_OID_FIELD(typeId);
1423  WRITE_INT_FIELD(typeMod);
1424  WRITE_OID_FIELD(collation);
1425 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outCaseWhen ( StringInfo  str,
const CaseWhen node 
)
static

Definition at line 1408 of file outfuncs.c.

References result, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1409 {
1410  WRITE_NODE_TYPE("WHEN");
1411 
1412  WRITE_NODE_FIELD(expr);
1414  WRITE_LOCATION_FIELD(location);
1415 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
return result
Definition: formatting.c:1618
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCoalesceExpr ( StringInfo  str,
const CoalesceExpr node 
)
static

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

1467 {
1468  WRITE_NODE_TYPE("COALESCE");
1469 
1470  WRITE_OID_FIELD(coalescetype);
1471  WRITE_OID_FIELD(coalescecollid);
1473  WRITE_LOCATION_FIELD(location);
1474 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCoerceToDomain ( StringInfo  str,
const CoerceToDomain node 
)
static

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

1539 {
1540  WRITE_NODE_TYPE("COERCETODOMAIN");
1541 
1543  WRITE_OID_FIELD(resulttype);
1544  WRITE_INT_FIELD(resulttypmod);
1545  WRITE_OID_FIELD(resultcollid);
1546  WRITE_ENUM_FIELD(coercionformat, CoercionForm);
1547  WRITE_LOCATION_FIELD(location);
1548 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
CoercionForm
Definition: primnodes.h:435
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCoerceToDomainValue ( StringInfo  str,
const CoerceToDomainValue node 
)
static

Definition at line 1551 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1552 {
1553  WRITE_NODE_TYPE("COERCETODOMAINVALUE");
1554 
1555  WRITE_OID_FIELD(typeId);
1556  WRITE_INT_FIELD(typeMod);
1557  WRITE_OID_FIELD(collation);
1558  WRITE_LOCATION_FIELD(location);
1559 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outCoerceViaIO ( StringInfo  str,
const CoerceViaIO node 
)
static

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

1348 {
1349  WRITE_NODE_TYPE("COERCEVIAIO");
1350 
1352  WRITE_OID_FIELD(resulttype);
1353  WRITE_OID_FIELD(resultcollid);
1354  WRITE_ENUM_FIELD(coerceformat, CoercionForm);
1355  WRITE_LOCATION_FIELD(location);
1356 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
CoercionForm
Definition: primnodes.h:435
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCollateClause ( StringInfo  str,
const CollateClause node 
)
static

Definition at line 2740 of file outfuncs.c.

References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2741 {
2742  WRITE_NODE_TYPE("COLLATECLAUSE");
2743 
2745  WRITE_NODE_FIELD(collname);
2746  WRITE_LOCATION_FIELD(location);
2747 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCollateExpr ( StringInfo  str,
const CollateExpr node 
)
static

Definition at line 1385 of file outfuncs.c.

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

Referenced by outNode().

1386 {
1387  WRITE_NODE_TYPE("COLLATE");
1388 
1390  WRITE_OID_FIELD(collOid);
1391  WRITE_LOCATION_FIELD(location);
1392 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outColumnDef ( StringInfo  str,
const ColumnDef node 
)
static

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

2695 {
2696  WRITE_NODE_TYPE("COLUMNDEF");
2697 
2698  WRITE_STRING_FIELD(colname);
2699  WRITE_NODE_FIELD(typeName);
2700  WRITE_INT_FIELD(inhcount);
2701  WRITE_BOOL_FIELD(is_local);
2702  WRITE_BOOL_FIELD(is_not_null);
2703  WRITE_BOOL_FIELD(is_from_type);
2704  WRITE_CHAR_FIELD(storage);
2705  WRITE_NODE_FIELD(raw_default);
2706  WRITE_NODE_FIELD(cooked_default);
2707  WRITE_NODE_FIELD(collClause);
2708  WRITE_OID_FIELD(collOid);
2709  WRITE_NODE_FIELD(constraints);
2710  WRITE_NODE_FIELD(fdwoptions);
2711  WRITE_LOCATION_FIELD(location);
2712 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:64
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outColumnRef ( StringInfo  str,
const ColumnRef node 
)
static

Definition at line 3143 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3144 {
3145  WRITE_NODE_TYPE("COLUMNREF");
3146 
3147  WRITE_NODE_FIELD(fields);
3148  WRITE_LOCATION_FIELD(location);
3149 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCommonTableExpr ( StringInfo  str,
const CommonTableExpr node 
)
static

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

2903 {
2904  WRITE_NODE_TYPE("COMMONTABLEEXPR");
2905 
2906  WRITE_STRING_FIELD(ctename);
2907  WRITE_NODE_FIELD(aliascolnames);
2908  WRITE_NODE_FIELD(ctequery);
2909  WRITE_LOCATION_FIELD(location);
2910  WRITE_BOOL_FIELD(cterecursive);
2911  WRITE_INT_FIELD(cterefcount);
2912  WRITE_NODE_FIELD(ctecolnames);
2913  WRITE_NODE_FIELD(ctecoltypes);
2914  WRITE_NODE_FIELD(ctecoltypmods);
2915  WRITE_NODE_FIELD(ctecolcollations);
2916 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outConst ( StringInfo  str,
const Const node 
)
static

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

1055 {
1056  WRITE_NODE_TYPE("CONST");
1057 
1058  WRITE_OID_FIELD(consttype);
1059  WRITE_INT_FIELD(consttypmod);
1060  WRITE_OID_FIELD(constcollid);
1061  WRITE_INT_FIELD(constlen);
1062  WRITE_BOOL_FIELD(constbyval);
1063  WRITE_BOOL_FIELD(constisnull);
1064  WRITE_LOCATION_FIELD(location);
1065 
1066  appendStringInfoString(str, " :constvalue ");
1067  if (node->constisnull)
1068  appendStringInfoString(str, "<>");
1069  else
1070  outDatum(str, node->constvalue, node->constlen, node->constbyval);
1071 }
Datum constvalue
Definition: primnodes.h:196
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
bool constbyval
Definition: primnodes.h:199
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
void outDatum(StringInfo str, Datum value, int typlen, bool typbyval)
Definition: outfuncs.c:203
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
int constlen
Definition: primnodes.h:195
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
bool constisnull
Definition: primnodes.h:197
static void _outConstraint ( StringInfo  str,
const Constraint node 
)
static

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

3317 {
3318  WRITE_NODE_TYPE("CONSTRAINT");
3319 
3320  WRITE_STRING_FIELD(conname);
3321  WRITE_BOOL_FIELD(deferrable);
3322  WRITE_BOOL_FIELD(initdeferred);
3323  WRITE_LOCATION_FIELD(location);
3324 
3325  appendStringInfoString(str, " :contype ");
3326  switch (node->contype)
3327  {
3328  case CONSTR_NULL:
3329  appendStringInfoString(str, "NULL");
3330  break;
3331 
3332  case CONSTR_NOTNULL:
3333  appendStringInfoString(str, "NOT_NULL");
3334  break;
3335 
3336  case CONSTR_DEFAULT:
3337  appendStringInfoString(str, "DEFAULT");
3338  WRITE_NODE_FIELD(raw_expr);
3339  WRITE_STRING_FIELD(cooked_expr);
3340  break;
3341 
3342  case CONSTR_CHECK:
3343  appendStringInfoString(str, "CHECK");
3344  WRITE_BOOL_FIELD(is_no_inherit);
3345  WRITE_NODE_FIELD(raw_expr);
3346  WRITE_STRING_FIELD(cooked_expr);
3347  break;
3348 
3349  case CONSTR_PRIMARY:
3350  appendStringInfoString(str, "PRIMARY_KEY");
3351  WRITE_NODE_FIELD(keys);
3353  WRITE_STRING_FIELD(indexname);
3354  WRITE_STRING_FIELD(indexspace);
3355  /* access_method and where_clause not currently used */
3356  break;
3357 
3358  case CONSTR_UNIQUE:
3359  appendStringInfoString(str, "UNIQUE");
3360  WRITE_NODE_FIELD(keys);
3362  WRITE_STRING_FIELD(indexname);
3363  WRITE_STRING_FIELD(indexspace);
3364  /* access_method and where_clause not currently used */
3365  break;
3366 
3367  case CONSTR_EXCLUSION:
3368  appendStringInfoString(str, "EXCLUSION");
3369  WRITE_NODE_FIELD(exclusions);
3371  WRITE_STRING_FIELD(indexname);
3372  WRITE_STRING_FIELD(indexspace);
3373  WRITE_STRING_FIELD(access_method);
3374  WRITE_NODE_FIELD(where_clause);
3375  break;
3376 
3377  case CONSTR_FOREIGN:
3378  appendStringInfoString(str, "FOREIGN_KEY");
3379  WRITE_NODE_FIELD(pktable);
3380  WRITE_NODE_FIELD(fk_attrs);
3381  WRITE_NODE_FIELD(pk_attrs);
3382  WRITE_CHAR_FIELD(fk_matchtype);
3383  WRITE_CHAR_FIELD(fk_upd_action);
3384  WRITE_CHAR_FIELD(fk_del_action);
3385  WRITE_NODE_FIELD(old_conpfeqop);
3386  WRITE_OID_FIELD(old_pktable_oid);
3387  WRITE_BOOL_FIELD(skip_validation);
3388  WRITE_BOOL_FIELD(initially_valid);
3389  break;
3390 
3392  appendStringInfoString(str, "ATTR_DEFERRABLE");
3393  break;
3394 
3396  appendStringInfoString(str, "ATTR_NOT_DEFERRABLE");
3397  break;
3398 
3399  case CONSTR_ATTR_DEFERRED:
3400  appendStringInfoString(str, "ATTR_DEFERRED");
3401  break;
3402 
3403  case CONSTR_ATTR_IMMEDIATE:
3404  appendStringInfoString(str, "ATTR_IMMEDIATE");
3405  break;
3406 
3407  default:
3408  appendStringInfo(str, "<unrecognized_constraint %d>",
3409  (int) node->contype);
3410  break;
3411  }
3412 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:64
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
ConstrType contype
Definition: parsenodes.h:2024
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outConvertRowtypeExpr ( StringInfo  str,
const ConvertRowtypeExpr node 
)
static

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

1375 {
1376  WRITE_NODE_TYPE("CONVERTROWTYPEEXPR");
1377 
1379  WRITE_OID_FIELD(resulttype);
1380  WRITE_ENUM_FIELD(convertformat, CoercionForm);
1381  WRITE_LOCATION_FIELD(location);
1382 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
CoercionForm
Definition: primnodes.h:435
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCreateForeignTableStmt ( StringInfo  str,
const CreateForeignTableStmt node 
)
static

Definition at line 2531 of file outfuncs.c.

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

Referenced by outNode().

2532 {
2533  WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT");
2534 
2535  _outCreateStmtInfo(str, (const CreateStmt *) node);
2536 
2537  WRITE_STRING_FIELD(servername);
2539 }
static void _outCreateStmtInfo(StringInfo str, const CreateStmt *node)
Definition: outfuncs.c:2507
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCreateStmt ( StringInfo  str,
const CreateStmt node 
)
static

Definition at line 2523 of file outfuncs.c.

References _outCreateStmtInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

2524 {
2525  WRITE_NODE_TYPE("CREATESTMT");
2526 
2527  _outCreateStmtInfo(str, (const CreateStmt *) node);
2528 }
static void _outCreateStmtInfo(StringInfo str, const CreateStmt *node)
Definition: outfuncs.c:2507
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outCreateStmtInfo ( StringInfo  str,
const CreateStmt node 
)
static

Definition at line 2507 of file outfuncs.c.

References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_STRING_FIELD.

Referenced by _outCreateForeignTableStmt(), and _outCreateStmt().

2508 {
2509  WRITE_NODE_FIELD(relation);
2510  WRITE_NODE_FIELD(tableElts);
2511  WRITE_NODE_FIELD(inhRelations);
2512  WRITE_NODE_FIELD(partspec);
2513  WRITE_NODE_FIELD(partbound);
2514  WRITE_NODE_FIELD(ofTypename);
2515  WRITE_NODE_FIELD(constraints);
2517  WRITE_ENUM_FIELD(oncommit, OnCommitAction);
2518  WRITE_STRING_FIELD(tablespacename);
2519  WRITE_BOOL_FIELD(if_not_exists);
2520 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
OnCommitAction
Definition: primnodes.h:47
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCteScan ( StringInfo  str,
const CteScan node 
)
static

Definition at line 624 of file outfuncs.c.

References _outScanInfo(), WRITE_INT_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

625 {
626  WRITE_NODE_TYPE("CTESCAN");
627 
628  _outScanInfo(str, (const Scan *) node);
629 
630  WRITE_INT_FIELD(ctePlanId);
631  WRITE_INT_FIELD(cteParam);
632 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outCurrentOfExpr ( StringInfo  str,
const CurrentOfExpr node 
)
static

Definition at line 1573 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.

Referenced by outNode().

1574 {
1575  WRITE_NODE_TYPE("CURRENTOFEXPR");
1576 
1577  WRITE_UINT_FIELD(cvarno);
1578  WRITE_STRING_FIELD(cursor_name);
1579  WRITE_INT_FIELD(cursor_param);
1580 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
static void _outCustomPath ( StringInfo  str,
const CustomPath node 
)
static

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

1796 {
1797  WRITE_NODE_TYPE("CUSTOMPATH");
1798 
1799  _outPathInfo(str, (const Path *) node);
1800 
1801  WRITE_UINT_FIELD(flags);
1802  WRITE_NODE_FIELD(custom_paths);
1803  WRITE_NODE_FIELD(custom_private);
1804  appendStringInfoString(str, " :methods ");
1805  outToken(str, node->methods->CustomName);
1806 }
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:112
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
const struct CustomPathMethods * methods
Definition: relation.h:1108
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
const char * CustomName
Definition: extensible.h:90
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outCustomScan ( StringInfo  str,
const CustomScan node 
)
static

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

663 {
664  WRITE_NODE_TYPE("CUSTOMSCAN");
665 
666  _outScanInfo(str, (const Scan *) node);
667 
668  WRITE_UINT_FIELD(flags);
669  WRITE_NODE_FIELD(custom_plans);
670  WRITE_NODE_FIELD(custom_exprs);
671  WRITE_NODE_FIELD(custom_private);
672  WRITE_NODE_FIELD(custom_scan_tlist);
673  WRITE_BITMAPSET_FIELD(custom_relids);
674  /* CustomName is a key to lookup CustomScanMethods */
675  appendStringInfoString(str, " :methods ");
676  outToken(str, node->methods->CustomName);
677 }
void outToken(StringInfo str, const char *s)
Definition: outfuncs.c:112
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
const struct CustomScanMethods * methods
Definition: plannodes.h:612
const char * CustomName
Definition: extensible.h:107
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outDeclareCursorStmt ( StringInfo  str,
const DeclareCursorStmt node 
)
static

Definition at line 2590 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2591 {
2592  WRITE_NODE_TYPE("DECLARECURSOR");
2593 
2594  WRITE_STRING_FIELD(portalname);
2596  WRITE_NODE_FIELD(query);
2597 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outDefElem ( StringInfo  str,
const DefElem node 
)
static

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

2643 {
2644  WRITE_NODE_TYPE("DEFELEM");
2645 
2646  WRITE_STRING_FIELD(defnamespace);
2647  WRITE_STRING_FIELD(defname);
2649  WRITE_ENUM_FIELD(defaction, DefElemAction);
2650  WRITE_LOCATION_FIELD(location);
2651 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
DefElemAction
Definition: parsenodes.h:696
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outDistinctExpr ( StringInfo  str,
const DistinctExpr node 
)
static

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

1198 {
1199  WRITE_NODE_TYPE("DISTINCTEXPR");
1200 
1201  WRITE_OID_FIELD(opno);
1202  WRITE_OID_FIELD(opfuncid);
1203  WRITE_OID_FIELD(opresulttype);
1204  WRITE_BOOL_FIELD(opretset);
1205  WRITE_OID_FIELD(opcollid);
1206  WRITE_OID_FIELD(inputcollid);
1208  WRITE_LOCATION_FIELD(location);
1209 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outEquivalenceClass ( StringInfo  str,
const EquivalenceClass node 
)
static

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

2279 {
2280  /*
2281  * To simplify reading, we just chase up to the topmost merged EC and
2282  * print that, without bothering to show the merge-ees separately.
2283  */
2284  while (node->ec_merged)
2285  node = node->ec_merged;
2286 
2287  WRITE_NODE_TYPE("EQUIVALENCECLASS");
2288 
2289  WRITE_NODE_FIELD(ec_opfamilies);
2290  WRITE_OID_FIELD(ec_collation);
2291  WRITE_NODE_FIELD(ec_members);
2292  WRITE_NODE_FIELD(ec_sources);
2293  WRITE_NODE_FIELD(ec_derives);
2294  WRITE_BITMAPSET_FIELD(ec_relids);
2295  WRITE_BOOL_FIELD(ec_has_const);
2296  WRITE_BOOL_FIELD(ec_has_volatile);
2297  WRITE_BOOL_FIELD(ec_below_outer_join);
2298  WRITE_BOOL_FIELD(ec_broken);
2299  WRITE_UINT_FIELD(ec_sortref);
2300  WRITE_UINT_FIELD(ec_min_security);
2301  WRITE_UINT_FIELD(ec_max_security);
2302 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
struct EquivalenceClass * ec_merged
Definition: relation.h:730
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outEquivalenceMember ( StringInfo  str,
const EquivalenceMember node 
)
static

Definition at line 2305 of file outfuncs.c.

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

Referenced by outNode().

2306 {
2307  WRITE_NODE_TYPE("EQUIVALENCEMEMBER");
2308 
2309  WRITE_NODE_FIELD(em_expr);
2310  WRITE_BITMAPSET_FIELD(em_relids);
2311  WRITE_BITMAPSET_FIELD(em_nullable_relids);
2312  WRITE_BOOL_FIELD(em_is_const);
2313  WRITE_BOOL_FIELD(em_is_child);
2314  WRITE_OID_FIELD(em_datatype);
2315 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outExtensibleNode ( StringInfo  str,
const ExtensibleNode node 
)
static

Definition at line 2483 of file outfuncs.c.

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

Referenced by outNode().

2484 {
2485  const ExtensibleNodeMethods *methods;
2486 
2487  methods = GetExtensibleNodeMethods(node->extnodename, false);
2488 
2489  WRITE_NODE_TYPE("EXTENSIBLENODE");
2490 
2491  WRITE_STRING_FIELD(extnodename);
2492 
2493  /* serialize the private fields */
2494  methods->nodeOut(str, node);
2495 }
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:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
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 1311 of file outfuncs.c.

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

Referenced by outNode().

1312 {
1313  WRITE_NODE_TYPE("FIELDSELECT");
1314 
1316  WRITE_INT_FIELD(fieldnum);
1317  WRITE_OID_FIELD(resulttype);
1318  WRITE_INT_FIELD(resulttypmod);
1319  WRITE_OID_FIELD(resultcollid);
1320 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outFieldStore ( StringInfo  str,
const FieldStore node 
)
static

Definition at line 1323 of file outfuncs.c.

References arg, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1324 {
1325  WRITE_NODE_TYPE("FIELDSTORE");
1326 
1328  WRITE_NODE_FIELD(newvals);
1329  WRITE_NODE_FIELD(fieldnums);
1330  WRITE_OID_FIELD(resulttype);
1331 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outForeignKeyCacheInfo ( StringInfo  str,
const ForeignKeyCacheInfo node 
)
static

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

3416 {
3417  int i;
3418 
3419  WRITE_NODE_TYPE("FOREIGNKEYCACHEINFO");
3420 
3421  WRITE_OID_FIELD(conrelid);
3422  WRITE_OID_FIELD(confrelid);
3423  WRITE_INT_FIELD(nkeys);
3424  appendStringInfoString(str, " :conkey");
3425  for (i = 0; i < node->nkeys; i++)
3426  appendStringInfo(str, " %d", node->conkey[i]);
3427  appendStringInfoString(str, " :confkey");
3428  for (i = 0; i < node->nkeys; i++)
3429  appendStringInfo(str, " %d", node->confkey[i]);
3430  appendStringInfoString(str, " :conpfeqop");
3431  for (i = 0; i < node->nkeys; i++)
3432  appendStringInfo(str, " %u", node->conpfeqop[i]);
3433 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
AttrNumber conkey[INDEX_MAX_KEYS]
Definition: rel.h:239
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
Oid conpfeqop[INDEX_MAX_KEYS]
Definition: rel.h:241
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
AttrNumber confkey[INDEX_MAX_KEYS]
Definition: rel.h:240
int i
static void _outForeignKeyOptInfo ( StringInfo  str,
const ForeignKeyOptInfo node 
)
static

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

2248 {
2249  int i;
2250 
2251  WRITE_NODE_TYPE("FOREIGNKEYOPTINFO");
2252 
2253  WRITE_UINT_FIELD(con_relid);
2254  WRITE_UINT_FIELD(ref_relid);
2255  WRITE_INT_FIELD(nkeys);
2256  appendStringInfoString(str, " :conkey");
2257  for (i = 0; i < node->nkeys; i++)
2258  appendStringInfo(str, " %d", node->conkey[i]);
2259  appendStringInfoString(str, " :confkey");
2260  for (i = 0; i < node->nkeys; i++)
2261  appendStringInfo(str, " %d", node->confkey[i]);
2262  appendStringInfoString(str, " :conpfeqop");
2263  for (i = 0; i < node->nkeys; i++)
2264  appendStringInfo(str, " %u", node->conpfeqop[i]);
2265  WRITE_INT_FIELD(nmatched_ec);
2266  WRITE_INT_FIELD(nmatched_rcols);
2267  WRITE_INT_FIELD(nmatched_ri);
2268  /* for compactness, just print the number of matches per column: */
2269  appendStringInfoString(str, " :eclass");
2270  for (i = 0; i < node->nkeys; i++)
2271  appendStringInfo(str, " %d", (node->eclass[i] != NULL));
2272  appendStringInfoString(str, " :rinfos");
2273  for (i = 0; i < node->nkeys; i++)
2274  appendStringInfo(str, " %d", list_length(node->rinfos[i]));
2275 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
Oid conpfeqop[INDEX_MAX_KEYS]
Definition: relation.h:659
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
struct EquivalenceClass * eclass[INDEX_MAX_KEYS]
Definition: relation.h:666
AttrNumber conkey[INDEX_MAX_KEYS]
Definition: relation.h:657
#define NULL
Definition: c.h:229
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static int list_length(const List *l)
Definition: pg_list.h:89
int i
AttrNumber confkey[INDEX_MAX_KEYS]
Definition: relation.h:658
List * rinfos[INDEX_MAX_KEYS]
Definition: relation.h:668
static void _outForeignPath ( StringInfo  str,
const ForeignPath node 
)
static

Definition at line 1784 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1785 {
1786  WRITE_NODE_TYPE("FOREIGNPATH");
1787 
1788  _outPathInfo(str, (const Path *) node);
1789 
1790  WRITE_NODE_FIELD(fdw_outerpath);
1791  WRITE_NODE_FIELD(fdw_private);
1792 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outForeignScan ( StringInfo  str,
const ForeignScan node 
)
static

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

646 {
647  WRITE_NODE_TYPE("FOREIGNSCAN");
648 
649  _outScanInfo(str, (const Scan *) node);
650 
651  WRITE_ENUM_FIELD(operation, CmdType);
652  WRITE_OID_FIELD(fs_server);
653  WRITE_NODE_FIELD(fdw_exprs);
654  WRITE_NODE_FIELD(fdw_private);
655  WRITE_NODE_FIELD(fdw_scan_tlist);
656  WRITE_NODE_FIELD(fdw_recheck_quals);
657  WRITE_BITMAPSET_FIELD(fs_relids);
658  WRITE_BOOL_FIELD(fsSystemCol);
659 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
CmdType
Definition: nodes.h:653
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outFromExpr ( StringInfo  str,
const FromExpr node 
)
static

Definition at line 1630 of file outfuncs.c.

References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1631 {
1632  WRITE_NODE_TYPE("FROMEXPR");
1633 
1634  WRITE_NODE_FIELD(fromlist);
1635  WRITE_NODE_FIELD(quals);
1636 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outFuncCall ( StringInfo  str,
const FuncCall node 
)
static

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

2626 {
2627  WRITE_NODE_TYPE("FUNCCALL");
2628 
2629  WRITE_NODE_FIELD(funcname);
2631  WRITE_NODE_FIELD(agg_order);
2632  WRITE_NODE_FIELD(agg_filter);
2633  WRITE_BOOL_FIELD(agg_within_group);
2634  WRITE_BOOL_FIELD(agg_star);
2635  WRITE_BOOL_FIELD(agg_distinct);
2636  WRITE_BOOL_FIELD(func_variadic);
2637  WRITE_NODE_FIELD(over);
2638  WRITE_LOCATION_FIELD(location);
2639 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outFuncExpr ( StringInfo  str,
const FuncExpr node 
)
static

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

1156 {
1157  WRITE_NODE_TYPE("FUNCEXPR");
1158 
1159  WRITE_OID_FIELD(funcid);
1160  WRITE_OID_FIELD(funcresulttype);
1161  WRITE_BOOL_FIELD(funcretset);
1162  WRITE_BOOL_FIELD(funcvariadic);
1163  WRITE_ENUM_FIELD(funcformat, CoercionForm);
1164  WRITE_OID_FIELD(funccollid);
1165  WRITE_OID_FIELD(inputcollid);
1167  WRITE_LOCATION_FIELD(location);
1168 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
CoercionForm
Definition: primnodes.h:435
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outFunctionScan ( StringInfo  str,
const FunctionScan node 
)
static

Definition at line 593 of file outfuncs.c.

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

Referenced by outNode().

594 {
595  WRITE_NODE_TYPE("FUNCTIONSCAN");
596 
597  _outScanInfo(str, (const Scan *) node);
598 
600  WRITE_BOOL_FIELD(funcordinality);
601 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static const struct fns functions
Definition: regcomp.c:299
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outGather ( StringInfo  str,
const Gather node 
)
static

Definition at line 453 of file outfuncs.c.

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

Referenced by outNode().

454 {
455  WRITE_NODE_TYPE("GATHER");
456 
457  _outPlanInfo(str, (const Plan *) node);
458 
459  WRITE_INT_FIELD(num_workers);
460  WRITE_BOOL_FIELD(single_copy);
461  WRITE_BOOL_FIELD(invisible);
462 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outGatherMerge ( StringInfo  str,
const GatherMerge node 
)
static

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

466 {
467  int i;
468 
469  WRITE_NODE_TYPE("GATHERMERGE");
470 
471  _outPlanInfo(str, (const Plan *) node);
472 
473  WRITE_INT_FIELD(num_workers);
474  WRITE_INT_FIELD(numCols);
475 
476  appendStringInfoString(str, " :sortColIdx");
477  for (i = 0; i < node->numCols; i++)
478  appendStringInfo(str, " %d", node->sortColIdx[i]);
479 
480  appendStringInfoString(str, " :sortOperators");
481  for (i = 0; i < node->numCols; i++)
482  appendStringInfo(str, " %u", node->sortOperators[i]);
483 
484  appendStringInfoString(str, " :collations");
485  for (i = 0; i < node->numCols; i++)
486  appendStringInfo(str, " %u", node->collations[i]);
487 
488  appendStringInfoString(str, " :nullsFirst");
489  for (i = 0; i < node->numCols; i++)
490  appendStringInfo(str, " %s", booltostr(node->nullsFirst[i]));
491 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
Oid * collations
Definition: plannodes.h:821
AttrNumber * sortColIdx
Definition: plannodes.h:819
#define booltostr(x)
Definition: outfuncs.c:101
bool * nullsFirst
Definition: plannodes.h:822
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
Oid * sortOperators
Definition: plannodes.h:820
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
int i
static void _outGatherMergePath ( StringInfo  str,
const GatherMergePath node 
)
static

Definition at line 2056 of file outfuncs.c.

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

Referenced by outNode().

2057 {
2058  WRITE_NODE_TYPE("GATHERMERGEPATH");
2059 
2060  _outPathInfo(str, (const Path *) node);
2061 
2063  WRITE_INT_FIELD(num_workers);
2064 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outGatherPath ( StringInfo  str,
const GatherPath node 
)
static

Definition at line 1865 of file outfuncs.c.

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

Referenced by outNode().

1866 {
1867  WRITE_NODE_TYPE("GATHERPATH");
1868 
1869  _outPathInfo(str, (const Path *) node);
1870 
1872  WRITE_BOOL_FIELD(single_copy);
1873 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outGroup ( StringInfo  str,
const Group node 
)
static

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

802 {
803  int i;
804 
805  WRITE_NODE_TYPE("GROUP");
806 
807  _outPlanInfo(str, (const Plan *) node);
808 
809  WRITE_INT_FIELD(numCols);
810 
811  appendStringInfoString(str, " :grpColIdx");
812  for (i = 0; i < node->numCols; i++)
813  appendStringInfo(str, " %d", node->grpColIdx[i]);
814 
815  appendStringInfoString(str, " :grpOperators");
816  for (i = 0; i < node->numCols; i++)
817  appendStringInfo(str, " %u", node->grpOperators[i]);
818 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
int numCols
Definition: plannodes.h:732
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
int i
AttrNumber * grpColIdx
Definition: plannodes.h:733
Oid * grpOperators
Definition: plannodes.h:734
static void _outGroupingFunc ( StringInfo  str,
const GroupingFunc node 
)
static

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

1112 {
1113  WRITE_NODE_TYPE("GROUPINGFUNC");
1114 
1116  WRITE_NODE_FIELD(refs);
1117  WRITE_NODE_FIELD(cols);
1118  WRITE_UINT_FIELD(agglevelsup);
1119  WRITE_LOCATION_FIELD(location);
1120 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outGroupingSet ( StringInfo  str,
const GroupingSet node 
)
static

Definition at line 2855 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2856 {
2857  WRITE_NODE_TYPE("GROUPINGSET");
2858 
2860  WRITE_NODE_FIELD(content);
2861  WRITE_LOCATION_FIELD(location);
2862 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
GroupingSetKind
Definition: parsenodes.h:1198
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outGroupingSetsPath ( StringInfo  str,
const GroupingSetsPath node 
)
static

Definition at line 1945 of file outfuncs.c.

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

Referenced by outNode().

1946 {
1947  WRITE_NODE_TYPE("GROUPINGSETSPATH");
1948 
1949  _outPathInfo(str, (const Path *) node);
1950 
1952  WRITE_NODE_FIELD(rollup_groupclauses);
1953  WRITE_NODE_FIELD(rollup_lists);
1954  WRITE_NODE_FIELD(qual);
1955 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outGroupPath ( StringInfo  str,
const GroupPath node 
)
static

Definition at line 1907 of file outfuncs.c.

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

Referenced by outNode().

1908 {
1909  WRITE_NODE_TYPE("GROUPPATH");
1910 
1911  _outPathInfo(str, (const Path *) node);
1912 
1914  WRITE_NODE_FIELD(groupClause);
1915  WRITE_NODE_FIELD(qual);
1916 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outHash ( StringInfo  str,
const Hash node 
)
static

Definition at line 877 of file outfuncs.c.

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

Referenced by outNode().

878 {
879  WRITE_NODE_TYPE("HASH");
880 
881  _outPlanInfo(str, (const Plan *) node);
882 
883  WRITE_OID_FIELD(skewTable);
884  WRITE_INT_FIELD(skewColumn);
885  WRITE_BOOL_FIELD(skewInherit);
886  WRITE_OID_FIELD(skewColType);
887  WRITE_INT_FIELD(skewColTypmod);
888 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outHashJoin ( StringInfo  str,
const HashJoin node 
)
static

Definition at line 729 of file outfuncs.c.

References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

730 {
731  WRITE_NODE_TYPE("HASHJOIN");
732 
733  _outJoinPlanInfo(str, (const Join *) node);
734 
735  WRITE_NODE_FIELD(hashclauses);
736 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:303
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outHashPath ( StringInfo  str,
const HashPath node 
)
static

Definition at line 2088 of file outfuncs.c.

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

Referenced by outNode().

2089 {
2090  WRITE_NODE_TYPE("HASHPATH");
2091 
2092  _outJoinPathInfo(str, (const JoinPath *) node);
2093 
2094  WRITE_NODE_FIELD(path_hashclauses);
2095  WRITE_INT_FIELD(num_batches);
2096 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1695
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outImportForeignSchemaStmt ( StringInfo  str,
const ImportForeignSchemaStmt node 
)
static

Definition at line 2542 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2543 {
2544  WRITE_NODE_TYPE("IMPORTFOREIGNSCHEMASTMT");
2545 
2546  WRITE_STRING_FIELD(server_name);
2547  WRITE_STRING_FIELD(remote_schema);
2548  WRITE_STRING_FIELD(local_schema);
2550  WRITE_NODE_FIELD(table_list);
2552 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
ImportForeignSchemaType
Definition: parsenodes.h:2228
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIndexElem ( StringInfo  str,
const IndexElem node 
)
static

Definition at line 2750 of file outfuncs.c.

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

Referenced by outNode().

2751 {
2752  WRITE_NODE_TYPE("INDEXELEM");
2753 
2755  WRITE_NODE_FIELD(expr);
2756  WRITE_STRING_FIELD(indexcolname);
2757  WRITE_NODE_FIELD(collation);
2758  WRITE_NODE_FIELD(opclass);
2759  WRITE_ENUM_FIELD(ordering, SortByDir);
2760  WRITE_ENUM_FIELD(nulls_ordering, SortByNulls);
2761 }
SortByDir
Definition: parsenodes.h:41
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
SortByNulls
Definition: parsenodes.h:49
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIndexOnlyScan ( StringInfo  str,
const IndexOnlyScan node 
)
static

Definition at line 536 of file outfuncs.c.

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

Referenced by outNode().

537 {
538  WRITE_NODE_TYPE("INDEXONLYSCAN");
539 
540  _outScanInfo(str, (const Scan *) node);
541 
542  WRITE_OID_FIELD(indexid);
543  WRITE_NODE_FIELD(indexqual);
544  WRITE_NODE_FIELD(indexorderby);
545  WRITE_NODE_FIELD(indextlist);
546  WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
547 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
ScanDirection
Definition: sdir.h:22
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIndexOptInfo ( StringInfo  str,
const IndexOptInfo node 
)
static

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

2223 {
2224  WRITE_NODE_TYPE("INDEXOPTINFO");
2225 
2226  /* NB: this isn't a complete set of fields */
2227  WRITE_OID_FIELD(indexoid);
2228  /* Do NOT print rel field, else infinite recursion */
2229  WRITE_UINT_FIELD(pages);
2230  WRITE_FLOAT_FIELD(tuples, "%.0f");
2231  WRITE_INT_FIELD(tree_height);
2232  WRITE_INT_FIELD(ncolumns);
2233  /* array fields aren't really worth the trouble to print */
2234  WRITE_OID_FIELD(relam);
2235  /* indexprs is redundant since we print indextlist */
2236  WRITE_NODE_FIELD(indpred);
2237  WRITE_NODE_FIELD(indextlist);
2238  WRITE_NODE_FIELD(indrestrictinfo);
2239  WRITE_BOOL_FIELD(predOK);
2240  WRITE_BOOL_FIELD(unique);
2241  WRITE_BOOL_FIELD(immediate);
2242  WRITE_BOOL_FIELD(hypothetical);
2243  /* we don't bother with fields copied from the index AM's API struct */
2244 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIndexPath ( StringInfo  str,
const IndexPath node 
)
static

Definition at line 1714 of file outfuncs.c.

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

Referenced by outNode().

1715 {
1716  WRITE_NODE_TYPE("INDEXPATH");
1717 
1718  _outPathInfo(str, (const Path *) node);
1719 
1720  WRITE_NODE_FIELD(indexinfo);
1721  WRITE_NODE_FIELD(indexclauses);
1722  WRITE_NODE_FIELD(indexquals);
1723  WRITE_NODE_FIELD(indexqualcols);
1724  WRITE_NODE_FIELD(indexorderbys);
1725  WRITE_NODE_FIELD(indexorderbycols);
1726  WRITE_ENUM_FIELD(indexscandir, ScanDirection);
1727  WRITE_FLOAT_FIELD(indextotalcost, "%.2f");
1728  WRITE_FLOAT_FIELD(indexselectivity, "%.4f");
1729 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
ScanDirection
Definition: sdir.h:22
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIndexScan ( StringInfo  str,
const IndexScan node 
)
static

Definition at line 520 of file outfuncs.c.

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

Referenced by outNode().

521 {
522  WRITE_NODE_TYPE("INDEXSCAN");
523 
524  _outScanInfo(str, (const Scan *) node);
525 
526  WRITE_OID_FIELD(indexid);
527  WRITE_NODE_FIELD(indexqual);
528  WRITE_NODE_FIELD(indexqualorig);
529  WRITE_NODE_FIELD(indexorderby);
530  WRITE_NODE_FIELD(indexorderbyorig);
531  WRITE_NODE_FIELD(indexorderbyops);
532  WRITE_ENUM_FIELD(indexorderdir, ScanDirection);
533 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
ScanDirection
Definition: sdir.h:22
static void _outScanInfo(StringInfo str, const Scan *node)
Definition: outfuncs.c:292
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIndexStmt ( StringInfo  str,
const IndexStmt node 
)
static

Definition at line 2555 of file outfuncs.c.

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

Referenced by outNode().

2556 {
2557  WRITE_NODE_TYPE("INDEXSTMT");
2558 
2559  WRITE_STRING_FIELD(idxname);
2560  WRITE_NODE_FIELD(relation);
2561  WRITE_STRING_FIELD(accessMethod);
2562  WRITE_STRING_FIELD(tableSpace);
2563  WRITE_NODE_FIELD(indexParams);
2565  WRITE_NODE_FIELD(whereClause);
2566  WRITE_NODE_FIELD(excludeOpNames);
2567  WRITE_STRING_FIELD(idxcomment);
2568  WRITE_OID_FIELD(indexOid);
2569  WRITE_OID_FIELD(oldNode);
2570  WRITE_BOOL_FIELD(unique);
2571  WRITE_BOOL_FIELD(primary);
2572  WRITE_BOOL_FIELD(isconstraint);
2573  WRITE_BOOL_FIELD(deferrable);
2574  WRITE_BOOL_FIELD(initdeferred);
2575  WRITE_BOOL_FIELD(transformed);
2576  WRITE_BOOL_FIELD(concurrent);
2577  WRITE_BOOL_FIELD(if_not_exists);
2578 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outInferenceElem ( StringInfo  str,
const InferenceElem node 
)
static

Definition at line 1583 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

1584 {
1585  WRITE_NODE_TYPE("INFERENCEELEM");
1586 
1587  WRITE_NODE_FIELD(expr);
1588  WRITE_OID_FIELD(infercollid);
1589  WRITE_OID_FIELD(inferopclass);
1590 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outIntoClause ( StringInfo  str,
const IntoClause node 
)
static

Definition at line 1024 of file outfuncs.c.

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

Referenced by outNode().

1025 {
1026  WRITE_NODE_TYPE("INTOCLAUSE");
1027 
1028  WRITE_NODE_FIELD(rel);
1029  WRITE_NODE_FIELD(colNames);
1031  WRITE_ENUM_FIELD(onCommit, OnCommitAction);
1032  WRITE_STRING_FIELD(tableSpaceName);
1033  WRITE_NODE_FIELD(viewQuery);
1034  WRITE_BOOL_FIELD(skipData);
1035 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
OnCommitAction
Definition: primnodes.h:47
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outJoin ( StringInfo  str,
const Join node 
)
static

Definition at line 680 of file outfuncs.c.

References _outJoinPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

681 {
682  WRITE_NODE_TYPE("JOIN");
683 
684  _outJoinPlanInfo(str, (const Join *) node);
685 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:303
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outJoinExpr ( StringInfo  str,
const JoinExpr node 
)
static

Definition at line 1615 of file outfuncs.c.

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

Referenced by outNode().

1616 {
1617  WRITE_NODE_TYPE("JOINEXPR");
1618 
1619  WRITE_ENUM_FIELD(jointype, JoinType);
1620  WRITE_BOOL_FIELD(isNatural);
1621  WRITE_NODE_FIELD(larg);
1622  WRITE_NODE_FIELD(rarg);
1623  WRITE_NODE_FIELD(usingClause);
1624  WRITE_NODE_FIELD(quals);
1625  WRITE_NODE_FIELD(alias);
1626  WRITE_INT_FIELD(rtindex);
1627 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
JoinType
Definition: nodes.h:677
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outJoinPathInfo ( StringInfo  str,
const JoinPath node 
)
static

Definition at line 1695 of file outfuncs.c.

References _outPathInfo(), WRITE_ENUM_FIELD, and WRITE_NODE_FIELD.

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

1696 {
1697  _outPathInfo(str, (const Path *) node);
1698 
1699  WRITE_ENUM_FIELD(jointype, JoinType);
1700  WRITE_NODE_FIELD(outerjoinpath);
1701  WRITE_NODE_FIELD(innerjoinpath);
1702  WRITE_NODE_FIELD(joinrestrictinfo);
1703 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
JoinType
Definition: nodes.h:677
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outJoinPlanInfo ( StringInfo  str,
const Join node 
)
static

Definition at line 303 of file outfuncs.c.

References _outPlanInfo(), WRITE_ENUM_FIELD, and WRITE_NODE_FIELD.

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

304 {
305  _outPlanInfo(str, (const Plan *) node);
306 
307  WRITE_ENUM_FIELD(jointype, JoinType);
308  WRITE_NODE_FIELD(joinqual);
309 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
JoinType
Definition: nodes.h:677
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outLimit ( StringInfo  str,
const Limit node 
)
static

Definition at line 928 of file outfuncs.c.

References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

929 {
930  WRITE_NODE_TYPE("LIMIT");
931 
932  _outPlanInfo(str, (const Plan *) node);
933 
934  WRITE_NODE_FIELD(limitOffset);
935  WRITE_NODE_FIELD(limitCount);
936 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outLimitPath ( StringInfo  str,
const LimitPath node 
)
static

Definition at line 2044 of file outfuncs.c.

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

Referenced by outNode().

2045 {
2046  WRITE_NODE_TYPE("LIMITPATH");
2047 
2048  _outPathInfo(str, (const Path *) node);
2049 
2051  WRITE_NODE_FIELD(limitOffset);
2052  WRITE_NODE_FIELD(limitCount);
2053 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outList ( StringInfo  str,
const List node 
)
static

Definition at line 144 of file outfuncs.c.

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

Referenced by outNode().

145 {
146  const ListCell *lc;
147 
148  appendStringInfoChar(str, '(');
149 
150  if (IsA(node, IntList))
151  appendStringInfoChar(str, 'i');
152  else if (IsA(node, OidList))
153  appendStringInfoChar(str, 'o');
154 
155  foreach(lc, node)
156  {
157  /*
158  * For the sake of backward compatibility, we emit a slightly
159  * different whitespace format for lists of nodes vs. other types of
160  * lists. XXX: is this necessary?
161  */
162  if (IsA(node, List))
163  {
164  outNode(str, lfirst(lc));
165  if (lnext(lc))
166  appendStringInfoChar(str, ' ');
167  }
168  else if (IsA(node, IntList))
169  appendStringInfo(str, " %d", lfirst_int(lc));
170  else if (IsA(node, OidList))
171  appendStringInfo(str, " %u", lfirst_oid(lc));
172  else
173  elog(ERROR, "unrecognized list node type: %d",
174  (int) node->type);
175  }
176 
177  appendStringInfoChar(str, ')');
178 }
#define IsA(nodeptr, _type_)
Definition: nodes.h:571
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
#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:201
void outNode(StringInfo str, const void *obj)
Definition: outfuncs.c:3482
#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 2663 of file outfuncs.c.

References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2664 {
2665  WRITE_NODE_TYPE("LOCKINGCLAUSE");
2666 
2667  WRITE_NODE_FIELD(lockedRels);
2669  WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
2670 }
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
LockClauseStrength
Definition: lockoptions.h:21
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
LockWaitPolicy
Definition: lockoptions.h:36
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outLockRows ( StringInfo  str,
const LockRows node 
)
static

Definition at line 917 of file outfuncs.c.

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

Referenced by outNode().

918 {
919  WRITE_NODE_TYPE("LOCKROWS");
920 
921  _outPlanInfo(str, (const Plan *) node);
922 
923  WRITE_NODE_FIELD(rowMarks);
924  WRITE_INT_FIELD(epqParam);
925 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outLockRowsPath ( StringInfo  str,
const LockRowsPath node 
)
static

Definition at line 2011 of file outfuncs.c.

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

Referenced by outNode().

2012 {
2013  WRITE_NODE_TYPE("LOCKROWSPATH");
2014 
2015  _outPathInfo(str, (const Path *) node);
2016 
2018  WRITE_NODE_FIELD(rowMarks);
2019  WRITE_INT_FIELD(epqParam);
2020 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMaterial ( StringInfo  str,
const Material node 
)
static

Definition at line 821 of file outfuncs.c.

References _outPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

822 {
823  WRITE_NODE_TYPE("MATERIAL");
824 
825  _outPlanInfo(str, (const Plan *) node);
826 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outMaterialPath ( StringInfo  str,
const MaterialPath node 
)
static

Definition at line 1842 of file outfuncs.c.

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

Referenced by outNode().

1843 {
1844  WRITE_NODE_TYPE("MATERIALPATH");
1845 
1846  _outPathInfo(str, (const Path *) node);
1847 
1849 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
Datum subpath(PG_FUNCTION_ARGS)
Definition: ltree_op.c:234
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMergeAppend ( StringInfo  str,
const MergeAppend node 
)
static

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

379 {
380  int i;
381 
382  WRITE_NODE_TYPE("MERGEAPPEND");
383 
384  _outPlanInfo(str, (const Plan *) node);
385 
386  WRITE_NODE_FIELD(partitioned_rels);
387  WRITE_NODE_FIELD(mergeplans);
388 
389  WRITE_INT_FIELD(numCols);
390 
391  appendStringInfoString(str, " :sortColIdx");
392  for (i = 0; i < node->numCols; i++)
393  appendStringInfo(str, " %d", node->sortColIdx[i]);
394 
395  appendStringInfoString(str, " :sortOperators");
396  for (i = 0; i < node->numCols; i++)
397  appendStringInfo(str, " %u", node->sortOperators[i]);
398 
399  appendStringInfoString(str, " :collations");
400  for (i = 0; i < node->numCols; i++)
401  appendStringInfo(str, " %u", node->collations[i]);
402 
403  appendStringInfoString(str, " :nullsFirst");
404  for (i = 0; i < node->numCols; i++)
405  appendStringInfo(str, " %s", booltostr(node->nullsFirst[i]));
406 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
Oid * collations
Definition: plannodes.h:255
#define booltostr(x)
Definition: outfuncs.c:101
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
AttrNumber * sortColIdx
Definition: plannodes.h:253
bool * nullsFirst
Definition: plannodes.h:256
int i
Oid * sortOperators
Definition: plannodes.h:254
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMergeAppendPath ( StringInfo  str,
const MergeAppendPath node 
)
static

Definition at line 1820 of file outfuncs.c.

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

Referenced by outNode().

1821 {
1822  WRITE_NODE_TYPE("MERGEAPPENDPATH");
1823 
1824  _outPathInfo(str, (const Path *) node);
1825 
1826  WRITE_NODE_FIELD(partitioned_rels);
1827  WRITE_NODE_FIELD(subpaths);
1828  WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
1829 }
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMergeJoin ( StringInfo  str,
const MergeJoin node 
)
static

Definition at line 698 of file outfuncs.c.

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

Referenced by outNode().

699 {
700  int numCols;
701  int i;
702 
703  WRITE_NODE_TYPE("MERGEJOIN");
704 
705  _outJoinPlanInfo(str, (const Join *) node);
706 
707  WRITE_NODE_FIELD(mergeclauses);
708 
709  numCols = list_length(node->mergeclauses);
710 
711  appendStringInfoString(str, " :mergeFamilies");
712  for (i = 0; i < numCols; i++)
713  appendStringInfo(str, " %u", node->mergeFamilies[i]);
714 
715  appendStringInfoString(str, " :mergeCollations");
716  for (i = 0; i < numCols; i++)
717  appendStringInfo(str, " %u", node->mergeCollations[i]);
718 
719  appendStringInfoString(str, " :mergeStrategies");
720  for (i = 0; i < numCols; i++)
721  appendStringInfo(str, " %d", node->mergeStrategies[i]);
722 
723  appendStringInfoString(str, " :mergeNullsFirst");
724  for (i = 0; i < numCols; i++)
725  appendStringInfo(str, " %s", booltostr(node->mergeNullsFirst[i]));
726 }
#define booltostr(x)
Definition: outfuncs.c:101
List * mergeclauses
Definition: plannodes.h:682
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:303
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
Oid * mergeFamilies
Definition: plannodes.h:684
Oid * mergeCollations
Definition: plannodes.h:685
bool * mergeNullsFirst
Definition: plannodes.h:687
int * mergeStrategies
Definition: plannodes.h:686
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static int list_length(const List *l)
Definition: pg_list.h:89
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMergePath ( StringInfo  str,
const MergePath node 
)
static

Definition at line 2075 of file outfuncs.c.

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

Referenced by outNode().

2076 {
2077  WRITE_NODE_TYPE("MERGEPATH");
2078 
2079  _outJoinPathInfo(str, (const JoinPath *) node);
2080 
2081  WRITE_NODE_FIELD(path_mergeclauses);
2082  WRITE_NODE_FIELD(outersortkeys);
2083  WRITE_NODE_FIELD(innersortkeys);
2084  WRITE_BOOL_FIELD(materialize_inner);
2085 }
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1695
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMinMaxAggInfo ( StringInfo  str,
const MinMaxAggInfo node 
)
static

Definition at line 2454 of file outfuncs.c.

References WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.

Referenced by outNode().

2455 {
2456  WRITE_NODE_TYPE("MINMAXAGGINFO");
2457 
2458  WRITE_OID_FIELD(aggfnoid);
2459  WRITE_OID_FIELD(aggsortop);
2460  WRITE_NODE_FIELD(target);
2461  /* We intentionally omit subroot --- too large, not interesting enough */
2462  WRITE_NODE_FIELD(path);
2463  WRITE_FLOAT_FIELD(pathcost, "%.2f");
2464  WRITE_NODE_FIELD(param);
2465 }
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMinMaxAggPath ( StringInfo  str,
const MinMaxAggPath node 
)
static

Definition at line 1958 of file outfuncs.c.

References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

1959 {
1960  WRITE_NODE_TYPE("MINMAXAGGPATH");
1961 
1962  _outPathInfo(str, (const Path *) node);
1963 
1964  WRITE_NODE_FIELD(mmaggregates);
1965  WRITE_NODE_FIELD(quals);
1966 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMinMaxExpr ( StringInfo  str,
const MinMaxExpr node 
)
static

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

1478 {
1479  WRITE_NODE_TYPE("MINMAX");
1480 
1481  WRITE_OID_FIELD(minmaxtype);
1482  WRITE_OID_FIELD(minmaxcollid);
1483  WRITE_OID_FIELD(inputcollid);
1486  WRITE_LOCATION_FIELD(location);
1487 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
MinMaxOp
Definition: primnodes.h:1052
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outModifyTable ( StringInfo  str,
const ModifyTable node 
)
static

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

340 {
341  WRITE_NODE_TYPE("MODIFYTABLE");
342 
343  _outPlanInfo(str, (const Plan *) node);
344 
345  WRITE_ENUM_FIELD(operation, CmdType);
346  WRITE_BOOL_FIELD(canSetTag);
347  WRITE_UINT_FIELD(nominalRelation);
348  WRITE_NODE_FIELD(partitioned_rels);
349  WRITE_NODE_FIELD(resultRelations);
350  WRITE_INT_FIELD(resultRelIndex);
351  WRITE_NODE_FIELD(plans);
352  WRITE_NODE_FIELD(withCheckOptionLists);
353  WRITE_NODE_FIELD(returningLists);
354  WRITE_NODE_FIELD(fdwPrivLists);
355  WRITE_BITMAPSET_FIELD(fdwDirectModifyPlans);
356  WRITE_NODE_FIELD(rowMarks);
357  WRITE_INT_FIELD(epqParam);
358  WRITE_ENUM_FIELD(onConflictAction, OnConflictAction);
359  WRITE_NODE_FIELD(arbiterIndexes);
360  WRITE_NODE_FIELD(onConflictSet);
361  WRITE_NODE_FIELD(onConflictWhere);
362  WRITE_UINT_FIELD(exclRelRTI);
363  WRITE_NODE_FIELD(exclRelTlist);
364 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
OnConflictAction
Definition: nodes.h:802
CmdType
Definition: nodes.h:653
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outModifyTablePath ( StringInfo  str,
const ModifyTablePath node 
)
static

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

2024 {
2025  WRITE_NODE_TYPE("MODIFYTABLEPATH");
2026 
2027  _outPathInfo(str, (const Path *) node);
2028 
2029  WRITE_ENUM_FIELD(operation, CmdType);
2030  WRITE_BOOL_FIELD(canSetTag);
2031  WRITE_UINT_FIELD(nominalRelation);
2032  WRITE_NODE_FIELD(partitioned_rels);
2033  WRITE_NODE_FIELD(resultRelations);
2034  WRITE_NODE_FIELD(subpaths);
2035  WRITE_NODE_FIELD(subroots);
2036  WRITE_NODE_FIELD(withCheckOptionLists);
2037  WRITE_NODE_FIELD(returningLists);
2038  WRITE_NODE_FIELD(rowMarks);
2039  WRITE_NODE_FIELD(onconflict);
2040  WRITE_INT_FIELD(epqParam);
2041 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
CmdType
Definition: nodes.h:653
Definition: relation.h:892
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outMultiAssignRef ( StringInfo  str,
const MultiAssignRef node 
)
static

Definition at line 3216 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3217 {
3218  WRITE_NODE_TYPE("MULTIASSIGNREF");
3219 
3220  WRITE_NODE_FIELD(source);
3221  WRITE_INT_FIELD(colno);
3222  WRITE_INT_FIELD(ncolumns);
3223 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outNamedArgExpr ( StringInfo  str,
const NamedArgExpr node 
)
static

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

1172 {
1173  WRITE_NODE_TYPE("NAMEDARGEXPR");
1174 
1177  WRITE_INT_FIELD(argnumber);
1178  WRITE_LOCATION_FIELD(location);
1179 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outNestLoop ( StringInfo  str,
const NestLoop node 
)
static

Definition at line 688 of file outfuncs.c.

References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

689 {
690  WRITE_NODE_TYPE("NESTLOOP");
691 
692  _outJoinPlanInfo(str, (const Join *) node);
693 
694  WRITE_NODE_FIELD(nestParams);
695 }
static void _outJoinPlanInfo(StringInfo str, const Join *node)
Definition: outfuncs.c:303
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outNestLoopParam ( StringInfo  str,
const NestLoopParam node 
)
static

Definition at line 939 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

940 {
941  WRITE_NODE_TYPE("NESTLOOPPARAM");
942 
943  WRITE_INT_FIELD(paramno);
944  WRITE_NODE_FIELD(paramval);
945 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outNestPath ( StringInfo  str,
const NestPath node 
)
static

Definition at line 2067 of file outfuncs.c.

References _outJoinPathInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

2068 {
2069  WRITE_NODE_TYPE("NESTPATH");
2070 
2071  _outJoinPathInfo(str, (const JoinPath *) node);
2072 }
static void _outJoinPathInfo(StringInfo str, const JoinPath *node)
Definition: outfuncs.c:1695
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outNotifyStmt ( StringInfo  str,
const NotifyStmt node 
)
static

Definition at line 2581 of file outfuncs.c.

References WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

2582 {
2583  WRITE_NODE_TYPE("NOTIFY");
2584 
2585  WRITE_STRING_FIELD(conditionname);
2586  WRITE_STRING_FIELD(payload);
2587 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
static void _outNullIfExpr ( StringInfo  str,
const NullIfExpr node 
)
static

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

1213 {
1214  WRITE_NODE_TYPE("NULLIFEXPR");
1215 
1216  WRITE_OID_FIELD(opno);
1217  WRITE_OID_FIELD(opfuncid);
1218  WRITE_OID_FIELD(opresulttype);
1219  WRITE_BOOL_FIELD(opretset);
1220  WRITE_OID_FIELD(opcollid);
1221  WRITE_OID_FIELD(inputcollid);
1223  WRITE_LOCATION_FIELD(location);
1224 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outNullTest ( StringInfo  str,
const NullTest node 
)
static

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

1518 {
1519  WRITE_NODE_TYPE("NULLTEST");
1520 
1522  WRITE_ENUM_FIELD(nulltesttype, NullTestType);
1523  WRITE_BOOL_FIELD(argisrow);
1524  WRITE_LOCATION_FIELD(location);
1525 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
NullTestType
Definition: primnodes.h:1170
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
void * arg
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outOnConflictExpr ( StringInfo  str,
const OnConflictExpr node 
)
static

Definition at line 1639 of file outfuncs.c.

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

Referenced by outNode().

1640 {
1641  WRITE_NODE_TYPE("ONCONFLICTEXPR");
1642 
1644  WRITE_NODE_FIELD(arbiterElems);
1645  WRITE_NODE_FIELD(arbiterWhere);
1646  WRITE_OID_FIELD(constraint);
1647  WRITE_NODE_FIELD(onConflictSet);
1648  WRITE_NODE_FIELD(onConflictWhere);
1649  WRITE_INT_FIELD(exclRelIndex);
1650  WRITE_NODE_FIELD(exclRelTlist);
1651 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
OnConflictAction
Definition: nodes.h:802
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outOpExpr ( StringInfo  str,
const OpExpr node 
)
static

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

1183 {
1184  WRITE_NODE_TYPE("OPEXPR");
1185 
1186  WRITE_OID_FIELD(opno);
1187  WRITE_OID_FIELD(opfuncid);
1188  WRITE_OID_FIELD(opresulttype);
1189  WRITE_BOOL_FIELD(opretset);
1190  WRITE_OID_FIELD(opcollid);
1191  WRITE_OID_FIELD(inputcollid);
1193  WRITE_LOCATION_FIELD(location);
1194 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outParam ( StringInfo  str,
const Param node 
)
static

Definition at line 1074 of file outfuncs.c.

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

Referenced by outNode().

1075 {
1076  WRITE_NODE_TYPE("PARAM");
1077 
1078  WRITE_ENUM_FIELD(paramkind, ParamKind);
1079  WRITE_INT_FIELD(paramid);
1080  WRITE_OID_FIELD(paramtype);
1081  WRITE_INT_FIELD(paramtypmod);
1082  WRITE_OID_FIELD(paramcollid);
1083  WRITE_LOCATION_FIELD(location);
1084 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
ParamKind
Definition: primnodes.h:233
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outParamPathInfo ( StringInfo  str,
const ParamPathInfo node 
)
static

Definition at line 2348 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2349 {
2350  WRITE_NODE_TYPE("PARAMPATHINFO");
2351 
2352  WRITE_BITMAPSET_FIELD(ppi_req_outer);
2353  WRITE_FLOAT_FIELD(ppi_rows, "%.0f");
2354  WRITE_NODE_FIELD(ppi_clauses);
2355 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outParamRef ( StringInfo  str,
const ParamRef node 
)
static

Definition at line 3152 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3153 {
3154  WRITE_NODE_TYPE("PARAMREF");
3155 
3156  WRITE_INT_FIELD(number);
3157  WRITE_LOCATION_FIELD(location);
3158 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPartitionBoundSpec ( StringInfo  str,
const PartitionBoundSpec node 
)
static

Definition at line 3458 of file outfuncs.c.

References WRITE_CHAR_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3459 {
3460  WRITE_NODE_TYPE("PARTITIONBOUND");
3461 
3462  WRITE_CHAR_FIELD(strategy);
3463  WRITE_NODE_FIELD(listdatums);
3464  WRITE_NODE_FIELD(lowerdatums);
3465  WRITE_NODE_FIELD(upperdatums);
3466 }
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:64
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPartitionedChildRelInfo ( StringInfo  str,
const PartitionedChildRelInfo node 
)
static

Definition at line 2432 of file outfuncs.c.

References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2433 {
2434  WRITE_NODE_TYPE("PARTITIONEDCHILDRELINFO");
2435 
2436  WRITE_UINT_FIELD(parent_relid);
2437  WRITE_NODE_FIELD(child_rels);
2438 }
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPartitionElem ( StringInfo  str,
const PartitionElem node 
)
static

Definition at line 3446 of file outfuncs.c.

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

Referenced by outNode().

3447 {
3448  WRITE_NODE_TYPE("PARTITIONELEM");
3449 
3451  WRITE_NODE_FIELD(expr);
3452  WRITE_NODE_FIELD(collation);
3453  WRITE_NODE_FIELD(opclass);
3454  WRITE_LOCATION_FIELD(location);
3455 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
const char * name
Definition: encode.c:521
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPartitionRangeDatum ( StringInfo  str,
const PartitionRangeDatum node 
)
static

Definition at line 3469 of file outfuncs.c.

References value, WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

3470 {
3471  WRITE_NODE_TYPE("PARTRANGEDATUM");
3472 
3473  WRITE_BOOL_FIELD(infinite);
3475 }
static struct @78 value
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPartitionSpec ( StringInfo  str,
const PartitionSpec node 
)
static

Definition at line 3436 of file outfuncs.c.

References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.

Referenced by outNode().

3437 {
3438  WRITE_NODE_TYPE("PARTITIONBY");
3439 
3440  WRITE_STRING_FIELD(strategy);
3441  WRITE_NODE_FIELD(partParams);
3442  WRITE_LOCATION_FIELD(location);
3443 }
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_STRING_FIELD(fldname)
Definition: outfuncs.c:82
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPath ( StringInfo  str,
const Path node 
)
static

Definition at line 1706 of file outfuncs.c.

References _outPathInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

1707 {
1708  WRITE_NODE_TYPE("PATH");
1709 
1710  _outPathInfo(str, (const Path *) node);
1711 }
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPathInfo(StringInfo str, const Path *node)
Definition: outfuncs.c:1670
Definition: relation.h:892
static void _outPathInfo ( StringInfo  str,
const Path node 
)
static

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

1671 {
1672  WRITE_ENUM_FIELD(pathtype, NodeTag);
1673  appendStringInfoString(str, " :parent_relids ");
1674  outBitmapset(str, node->parent->relids);
1675  if (node->pathtarget != node->parent->reltarget)
1676  WRITE_NODE_FIELD(pathtarget);
1677  appendStringInfoString(str, " :required_outer ");
1678  if (node->param_info)
1679  outBitmapset(str, node->param_info->ppi_req_outer);
1680  else
1681  outBitmapset(str, NULL);
1682  WRITE_BOOL_FIELD(parallel_aware);
1683  WRITE_BOOL_FIELD(parallel_safe);
1684  WRITE_INT_FIELD(parallel_workers);
1685  WRITE_FLOAT_FIELD(rows, "%.0f");
1686  WRITE_FLOAT_FIELD(startup_cost, "%.2f");
1687  WRITE_FLOAT_FIELD(total_cost, "%.2f");
1688  WRITE_NODE_FIELD(pathkeys);
1689 }
PathTarget * pathtarget
Definition: relation.h:899
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
ParamPathInfo * param_info
Definition: relation.h:901
NodeTag
Definition: nodes.h:26
RelOptInfo * parent
Definition: relation.h:898
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
Relids relids
Definition: relation.h:494
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define NULL
Definition: c.h:229
void outBitmapset(StringInfo str, const Bitmapset *bms)
Definition: outfuncs.c:187
Relids ppi_req_outer
Definition: relation.h:857
struct PathTarget * reltarget
Definition: relation.h:505
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPathKey ( StringInfo  str,
const PathKey node 
)
static

Definition at line 2318 of file outfuncs.c.

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

Referenced by outNode().

2319 {
2320  WRITE_NODE_TYPE("PATHKEY");
2321 
2322  WRITE_NODE_FIELD(pk_eclass);
2323  WRITE_OID_FIELD(pk_opfamily);
2324  WRITE_INT_FIELD(pk_strategy);
2325  WRITE_BOOL_FIELD(pk_nulls_first);
2326 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_OID_FIELD(fldname)
Definition: outfuncs.c:56
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPathTarget ( StringInfo  str,
const PathTarget node 
)
static

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

2330 {
2331  WRITE_NODE_TYPE("PATHTARGET");
2332 
2333  WRITE_NODE_FIELD(exprs);
2334  if (node->sortgrouprefs)
2335  {
2336  int i;
2337 
2338  appendStringInfoString(str, " :sortgrouprefs");
2339  for (i = 0; i < list_length(node->exprs); i++)
2340  appendStringInfo(str, " %u", node->sortgrouprefs[i]);
2341  }
2342  WRITE_FLOAT_FIELD(cost.startup, "%.2f");
2343  WRITE_FLOAT_FIELD(cost.per_tuple, "%.2f");
2344  WRITE_INT_FIELD(width);
2345 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:189
Index * sortgrouprefs
Definition: relation.h:829
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
List * exprs
Definition: relation.h:828
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static int list_length(const List *l)
Definition: pg_list.h:89
int i
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlaceHolderInfo ( StringInfo  str,
const PlaceHolderInfo node 
)
static

Definition at line 2441 of file outfuncs.c.

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

Referenced by outNode().

2442 {
2443  WRITE_NODE_TYPE("PLACEHOLDERINFO");
2444 
2445  WRITE_UINT_FIELD(phid);
2446  WRITE_NODE_FIELD(ph_var);
2447  WRITE_BITMAPSET_FIELD(ph_eval_at);
2448  WRITE_BITMAPSET_FIELD(ph_lateral);
2449  WRITE_BITMAPSET_FIELD(ph_needed);
2450  WRITE_INT_FIELD(ph_width);
2451 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlaceHolderVar ( StringInfo  str,
const PlaceHolderVar node 
)
static

Definition at line 2390 of file outfuncs.c.

References WRITE_BITMAPSET_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2391 {
2392  WRITE_NODE_TYPE("PLACEHOLDERVAR");
2393 
2394  WRITE_NODE_FIELD(phexpr);
2395  WRITE_BITMAPSET_FIELD(phrels);
2396  WRITE_UINT_FIELD(phid);
2397  WRITE_UINT_FIELD(phlevelsup);
2398 }
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlan ( StringInfo  str,
const Plan node 
)
static

Definition at line 313 of file outfuncs.c.

References _outPlanInfo(), and WRITE_NODE_TYPE.

Referenced by outNode().

314 {
315  WRITE_NODE_TYPE("PLAN");
316 
317  _outPlanInfo(str, (const Plan *) node);
318 }
static void _outPlanInfo(StringInfo str, const Plan *node)
Definition: outfuncs.c:271
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPlanInfo ( StringInfo  str,
const Plan node 
)
static

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

272 {
273  WRITE_FLOAT_FIELD(startup_cost, "%.2f");
274  WRITE_FLOAT_FIELD(total_cost, "%.2f");
275  WRITE_FLOAT_FIELD(plan_rows, "%.0f");
276  WRITE_INT_FIELD(plan_width);
277  WRITE_BOOL_FIELD(parallel_aware);
278  WRITE_INT_FIELD(plan_node_id);
279  WRITE_NODE_FIELD(targetlist);
280  WRITE_NODE_FIELD(qual);
281  WRITE_NODE_FIELD(lefttree);
282  WRITE_NODE_FIELD(righttree);
283  WRITE_NODE_FIELD(initPlan);
284  WRITE_BITMAPSET_FIELD(extParam);
285  WRITE_BITMAPSET_FIELD(allParam);
286 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlanInvalItem ( StringInfo  str,
const PlanInvalItem node 
)
static

Definition at line 963 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

964 {
965  WRITE_NODE_TYPE("PLANINVALITEM");
966 
967  WRITE_INT_FIELD(cacheId);
968  WRITE_UINT_FIELD(hashValue);
969 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static void _outPlannedStmt ( StringInfo  str,
const PlannedStmt node 
)
static

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

241 {
242  WRITE_NODE_TYPE("PLANNEDSTMT");
243 
244  WRITE_ENUM_FIELD(commandType, CmdType);
245  WRITE_UINT_FIELD(queryId);
246  WRITE_BOOL_FIELD(hasReturning);
247  WRITE_BOOL_FIELD(hasModifyingCTE);
248  WRITE_BOOL_FIELD(canSetTag);
249  WRITE_BOOL_FIELD(transientPlan);
250  WRITE_BOOL_FIELD(dependsOnRole);
251  WRITE_BOOL_FIELD(parallelModeNeeded);
252  WRITE_NODE_FIELD(planTree);
253  WRITE_NODE_FIELD(rtable);
254  WRITE_NODE_FIELD(resultRelations);
255  WRITE_NODE_FIELD(nonleafResultRelations);
256  WRITE_NODE_FIELD(subplans);
257  WRITE_BITMAPSET_FIELD(rewindPlanIDs);
258  WRITE_NODE_FIELD(rowMarks);
259  WRITE_NODE_FIELD(relationOids);
260  WRITE_NODE_FIELD(invalItems);
261  WRITE_INT_FIELD(nParamExec);
262  WRITE_NODE_FIELD(utilityStmt);
263  WRITE_LOCATION_FIELD(stmt_location);
264  WRITE_LOCATION_FIELD(stmt_len);
265 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_LOCATION_FIELD(fldname)
Definition: outfuncs.c:87
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
CmdType
Definition: nodes.h:653
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlannerGlobal ( StringInfo  str,
const PlannerGlobal node 
)
static

Definition at line 2099 of file outfuncs.c.

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

Referenced by outNode().

2100 {
2101  WRITE_NODE_TYPE("PLANNERGLOBAL");
2102 
2103  /* NB: this isn't a complete set of fields */
2104  WRITE_NODE_FIELD(subplans);
2105  WRITE_BITMAPSET_FIELD(rewindPlanIDs);
2106  WRITE_NODE_FIELD(finalrtable);
2107  WRITE_NODE_FIELD(finalrowmarks);
2108  WRITE_NODE_FIELD(resultRelations);
2109  WRITE_NODE_FIELD(nonleafResultRelations);
2110  WRITE_NODE_FIELD(relationOids);
2111  WRITE_NODE_FIELD(invalItems);
2112  WRITE_INT_FIELD(nParamExec);
2113  WRITE_UINT_FIELD(lastPHId);
2114  WRITE_UINT_FIELD(lastRowMarkId);
2115  WRITE_INT_FIELD(lastPlanNodeId);
2116  WRITE_BOOL_FIELD(transientPlan);
2117  WRITE_BOOL_FIELD(dependsOnRole);
2118  WRITE_BOOL_FIELD(parallelModeOK);
2119  WRITE_BOOL_FIELD(parallelModeNeeded);
2120  WRITE_CHAR_FIELD(maxParallelHazard);
2121 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_CHAR_FIELD(fldname)
Definition: outfuncs.c:64
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlannerInfo ( StringInfo  str,
const PlannerInfo node 
)
static

Definition at line 2124 of file outfuncs.c.

References parse(), WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.

Referenced by outNode().

2125 {
2126  WRITE_NODE_TYPE("PLANNERINFO");
2127 
2128  /* NB: this isn't a complete set of fields */
2130  WRITE_NODE_FIELD(glob);
2131  WRITE_UINT_FIELD(query_level);
2132  WRITE_NODE_FIELD(plan_params);
2133  WRITE_BITMAPSET_FIELD(outer_params);
2134  WRITE_BITMAPSET_FIELD(all_baserels);
2135  WRITE_BITMAPSET_FIELD(nullable_baserels);
2136  WRITE_NODE_FIELD(join_rel_list);
2137  WRITE_INT_FIELD(join_cur_level);
2138  WRITE_NODE_FIELD(init_plans);
2139  WRITE_NODE_FIELD(cte_plan_ids);
2140  WRITE_NODE_FIELD(multiexpr_params);
2141  WRITE_NODE_FIELD(eq_classes);
2142  WRITE_NODE_FIELD(canon_pathkeys);
2143  WRITE_NODE_FIELD(left_join_clauses);
2144  WRITE_NODE_FIELD(right_join_clauses);
2145  WRITE_NODE_FIELD(full_join_clauses);
2146  WRITE_NODE_FIELD(join_info_list);
2147  WRITE_NODE_FIELD(append_rel_list);
2148  WRITE_NODE_FIELD(pcinfo_list);
2149  WRITE_NODE_FIELD(rowMarks);
2150  WRITE_NODE_FIELD(placeholder_list);
2151  WRITE_NODE_FIELD(fkey_list);
2152  WRITE_NODE_FIELD(query_pathkeys);
2153  WRITE_NODE_FIELD(group_pathkeys);
2154  WRITE_NODE_FIELD(window_pathkeys);
2155  WRITE_NODE_FIELD(distinct_pathkeys);
2156  WRITE_NODE_FIELD(sort_pathkeys);
2157  WRITE_NODE_FIELD(processed_tlist);
2158  WRITE_NODE_FIELD(minmax_aggs);
2159  WRITE_FLOAT_FIELD(total_table_pages, "%.0f");
2160  WRITE_FLOAT_FIELD(tuple_fraction, "%.4f");
2161  WRITE_FLOAT_FIELD(limit_tuples, "%.0f");
2162  WRITE_UINT_FIELD(qual_security_level);
2163  WRITE_BOOL_FIELD(hasInheritedTarget);
2164  WRITE_BOOL_FIELD(hasJoinRTEs);
2165  WRITE_BOOL_FIELD(hasLateralRTEs);
2166  WRITE_BOOL_FIELD(hasDeletedRTEs);
2167  WRITE_BOOL_FIELD(hasHavingQual);
2168  WRITE_BOOL_FIELD(hasPseudoConstantQuals);
2169  WRITE_BOOL_FIELD(hasRecursion);
2170  WRITE_INT_FIELD(wt_param_id);
2171  WRITE_BITMAPSET_FIELD(curOuterRels);
2172  WRITE_NODE_FIELD(curOuterParams);
2173 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_BITMAPSET_FIELD(fldname)
Definition: outfuncs.c:96
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52
#define WRITE_BOOL_FIELD(fldname)
Definition: outfuncs.c:77
#define WRITE_FLOAT_FIELD(fldname, format)
Definition: outfuncs.c:73
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
static struct subre * parse(struct vars *, int, int, struct state *, struct state *)
Definition: regcomp.c:649
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlannerParamItem ( StringInfo  str,
const PlannerParamItem node 
)
static

Definition at line 2468 of file outfuncs.c.

References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.

Referenced by outNode().

2469 {
2470  WRITE_NODE_TYPE("PLANNERPARAMITEM");
2471 
2472  WRITE_NODE_FIELD(item);
2473  WRITE_INT_FIELD(paramId);
2474 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_NODE_TYPE(nodelabel)
Definition: outfuncs.c:44
#define WRITE_NODE_FIELD(fldname)
Definition: outfuncs.c:91
static void _outPlanRowMark ( StringInfo  str,
const PlanRowMark node 
)
static

Definition at line 948 of file outfuncs.c.

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

Referenced by outNode().

949 {
950  WRITE_NODE_TYPE("PLANROWMARK");
951 
952  WRITE_UINT_FIELD(rti);
953  WRITE_UINT_FIELD(prti);
954  WRITE_UINT_FIELD(rowmarkId);
955  WRITE_ENUM_FIELD(markType, RowMarkType);
956  WRITE_INT_FIELD(allMarkTypes);
958  WRITE_ENUM_FIELD(waitPolicy, LockWaitPolicy);
959  WRITE_BOOL_FIELD(isParent);
960 }
#define WRITE_INT_FIELD(fldname)
Definition: outfuncs.c:48
#define WRITE_ENUM_FIELD(fldname, enumtype)
Definition: outfuncs.c:68
#define WRITE_UINT_FIELD(fldname)
Definition: outfuncs.c:52