#include "postgres.h"
#include <ctype.h>
#include "lib/stringinfo.h"
#include "nodes/plannodes.h"
#include "nodes/relation.h"
#include "utils/datum.h"
Go to the source code of this file.
Defines | |
#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 | |
static void | _outNode (StringInfo str, const void *obj) |
static void | _outToken (StringInfo str, const char *s) |
static void | _outList (StringInfo str, const List *node) |
static void | _outBitmapset (StringInfo str, const Bitmapset *bms) |
static 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 | _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 | _outScan (StringInfo str, const Scan *node) |
static void | _outSeqScan (StringInfo str, const SeqScan *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 | _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 | _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 | _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 | _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 | _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 | _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 | _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 | _outForeignPath (StringInfo str, const ForeignPath *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 | _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 | _outEquivalenceClass (StringInfo str, const EquivalenceClass *node) |
static void | _outEquivalenceMember (StringInfo str, const EquivalenceMember *node) |
static void | _outPathKey (StringInfo str, const PathKey *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 | _outLateralJoinInfo (StringInfo str, const LateralJoinInfo *node) |
static void | _outAppendRelInfo (StringInfo str, const AppendRelInfo *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 | _outCreateStmtInfo (StringInfo str, const CreateStmt *node) |
static void | _outCreateStmt (StringInfo str, const CreateStmt *node) |
static void | _outCreateForeignTableStmt (StringInfo str, const CreateForeignTableStmt *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 | _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 | _outSortGroupClause (StringInfo str, const SortGroupClause *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 | _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 | _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 | _outConstraint (StringInfo str, const Constraint *node) |
char * | nodeToString (const void *obj) |
#define booltostr | ( | x | ) | ((x) ? "true" : "false") |
Definition at line 97 of file outfuncs.c.
Referenced by _outMergeAppend(), and _outSort().
#define WRITE_BITMAPSET_FIELD | ( | fldname | ) |
(appendStringInfo(str, " :" CppAsString(fldname) " "), \ _outBitmapset(str, node->fldname))
Definition at line 92 of file outfuncs.c.
Referenced by _outEquivalenceClass(), _outEquivalenceMember(), _outLateralJoinInfo(), _outParamPathInfo(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlanInfo(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outRangeTblEntry(), _outRelOptInfo(), _outRestrictInfo(), and _outSpecialJoinInfo().
#define WRITE_BOOL_FIELD | ( | fldname | ) |
appendStringInfo(str, " :" CppAsString(fldname) " %s", \ booltostr(node->fldname))
Definition at line 73 of file outfuncs.c.
Referenced by _outAggref(), _outArrayCoerceExpr(), _outArrayExpr(), _outColumnDef(), _outCommonTableExpr(), _outConst(), _outConstraint(), _outCreateStmtInfo(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outForeignScan(), _outFuncCall(), _outFuncExpr(), _outHash(), _outIndexOptInfo(), _outIndexStmt(), _outIntoClause(), _outJoinExpr(), _outLockingClause(), _outMergePath(), _outModifyTable(), _outNullIfExpr(), _outNullTest(), _outOpExpr(), _outPathKey(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlanRowMark(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTblEntry(), _outRelOptInfo(), _outRestrictInfo(), _outRowMarkClause(), _outScalarArrayOpExpr(), _outSelectStmt(), _outSetOperationStmt(), _outSortGroupClause(), _outSpecialJoinInfo(), _outSubPlan(), _outTargetEntry(), _outTypeName(), _outWindowClause(), _outWindowFunc(), and _outWithClause().
#define WRITE_CHAR_FIELD | ( | fldname | ) | appendStringInfo(str, " :" CppAsString(fldname) " %c", node->fldname) |
Definition at line 60 of file outfuncs.c.
Referenced by _outColumnDef(), _outConstraint(), _outRangeTblEntry(), and _outRangeVar().
#define WRITE_ENUM_FIELD | ( | fldname, | ||
enumtype | ||||
) |
appendStringInfo(str, " :" CppAsString(fldname) " %d", \ (int) node->fldname)
Definition at line 64 of file outfuncs.c.
Referenced by _outAgg(), _outArrayCoerceExpr(), _outBooleanTest(), _outCoerceToDomain(), _outCoerceViaIO(), _outConvertRowtypeExpr(), _outCreateStmtInfo(), _outDefElem(), _outFuncExpr(), _outIndexElem(), _outIndexOnlyScan(), _outIndexPath(), _outIndexScan(), _outIntoClause(), _outJoinExpr(), _outJoinPathInfo(), _outJoinPlanInfo(), _outLockingClause(), _outMinMaxExpr(), _outModifyTable(), _outNullTest(), _outParam(), _outPathInfo(), _outPlannedStmt(), _outPlanRowMark(), _outQuery(), _outRangeTblEntry(), _outRangeVar(), _outRelabelType(), _outRelOptInfo(), _outRowCompareExpr(), _outRowExpr(), _outRowMarkClause(), _outSelectStmt(), _outSetOp(), _outSetOperationStmt(), _outSortBy(), _outSpecialJoinInfo(), _outSubLink(), _outSubPlan(), _outUniquePath(), _outXmlExpr(), and _outXmlSerialize().
#define WRITE_FLOAT_FIELD | ( | fldname, | ||
format | ||||
) | appendStringInfo(str, " :" CppAsString(fldname) " " format, node->fldname) |
Definition at line 69 of file outfuncs.c.
Referenced by _outBitmapAndPath(), _outBitmapOrPath(), _outIndexOptInfo(), _outIndexPath(), _outMergeAppendPath(), _outMinMaxAggInfo(), _outParamPathInfo(), _outPathInfo(), _outPlanInfo(), _outPlannerInfo(), _outRelOptInfo(), _outRestrictInfo(), and _outSubPlan().
#define WRITE_INT_FIELD | ( | fldname | ) | appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname) |
Definition at line 44 of file outfuncs.c.
Referenced by _outAgg(), _outArrayCoerceExpr(), _outArrayRef(), _outCaseTestExpr(), _outCoerceToDomain(), _outCoerceToDomainValue(), _outColumnDef(), _outCommonTableExpr(), _outConst(), _outCteScan(), _outCurrentOfExpr(), _outDeclareCursorStmt(), _outFieldSelect(), _outGroup(), _outHash(), _outHashPath(), _outIndexOptInfo(), _outJoinExpr(), _outLockRows(), _outMergeAppend(), _outModifyTable(), _outNamedArgExpr(), _outNestLoopParam(), _outParam(), _outParamRef(), _outPathKey(), _outPlaceHolderInfo(), _outPlanInfo(), _outPlanInvalItem(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlannerParamItem(), _outQuery(), _outRangeTblRef(), _outRecursiveUnion(), _outRelabelType(), _outRelOptInfo(), _outSetOp(), _outSetToDefault(), _outSort(), _outSubPlan(), _outTargetEntry(), _outTypeName(), _outUnique(), _outVar(), _outWindowAgg(), _outWindowClause(), _outWindowDef(), _outWorkTableScan(), and _outXmlExpr().
#define WRITE_LOCATION_FIELD | ( | fldname | ) | appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname) |
Definition at line 83 of file outfuncs.c.
Referenced by _outA_ArrayExpr(), _outAConst(), _outAExpr(), _outAggref(), _outArrayCoerceExpr(), _outArrayExpr(), _outBoolExpr(), _outCaseExpr(), _outCaseWhen(), _outCoalesceExpr(), _outCoerceToDomain(), _outCoerceToDomainValue(), _outCoerceViaIO(), _outCollateClause(), _outCollateExpr(), _outColumnRef(), _outCommonTableExpr(), _outConst(), _outConstraint(), _outConvertRowtypeExpr(), _outDistinctExpr(), _outFuncCall(), _outFuncExpr(), _outMinMaxExpr(), _outNamedArgExpr(), _outNullIfExpr(), _outOpExpr(), _outParam(), _outParamRef(), _outRangeVar(), _outRelabelType(), _outResTarget(), _outRowExpr(), _outScalarArrayOpExpr(), _outSetToDefault(), _outSortBy(), _outSubLink(), _outTypeCast(), _outTypeName(), _outVar(), _outWindowDef(), _outWindowFunc(), _outWithClause(), _outXmlExpr(), and _outXmlSerialize().
#define WRITE_LONG_FIELD | ( | fldname | ) | appendStringInfo(str, " :" CppAsString(fldname) " %ld", node->fldname) |
Definition at line 56 of file outfuncs.c.
Referenced by _outAgg(), _outRecursiveUnion(), and _outSetOp().
#define WRITE_NODE_FIELD | ( | fldname | ) |
(appendStringInfo(str, " :" CppAsString(fldname) " "), \ _outNode(str, node->fldname))
Definition at line 87 of file outfuncs.c.
Referenced by _outA_ArrayExpr(), _outA_Indices(), _outA_Indirection(), _outAExpr(), _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(), _outDeclareCursorStmt(), _outDefElem(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outFieldSelect(), _outFieldStore(), _outForeignPath(), _outForeignScan(), _outFromExpr(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outHashJoin(), _outHashPath(), _outIndexElem(), _outIndexOnlyScan(), _outIndexOptInfo(), _outIndexPath(), _outIndexScan(), _outIndexStmt(), _outIntoClause(), _outJoinExpr(), _outJoinPathInfo(), _outJoinPlanInfo(), _outLimit(), _outLockingClause(), _outLockRows(), _outMaterialPath(), _outMergeAppend(), _outMergeAppendPath(), _outMergeJoin(), _outMergePath(), _outMinMaxAggInfo(), _outMinMaxExpr(), _outModifyTable(), _outNamedArgExpr(), _outNestLoop(), _outNestLoopParam(), _outNullIfExpr(), _outNullTest(), _outOpExpr(), _outParamPathInfo(), _outPathInfo(), _outPathKey(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlanInfo(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlannerParamItem(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTblEntry(), _outRangeVar(), _outRelabelType(), _outRelOptInfo(), _outResTarget(), _outRestrictInfo(), _outResult(), _outResultPath(), _outRowCompareExpr(), _outRowExpr(), _outScalarArrayOpExpr(), _outSelectStmt(), _outSetOperationStmt(), _outSortBy(), _outSpecialJoinInfo(), _outSubLink(), _outSubPlan(), _outSubqueryScan(), _outTableLikeClause(), _outTargetEntry(), _outTidPath(), _outTidScan(), _outTypeCast(), _outTypeName(), _outUniquePath(), _outValuesScan(), _outWindowAgg(), _outWindowClause(), _outWindowDef(), _outWindowFunc(), _outWithClause(), _outXmlExpr(), and _outXmlSerialize().
#define WRITE_NODE_TYPE | ( | nodelabel | ) | appendStringInfoString(str, nodelabel) |
Definition at line 40 of file outfuncs.c.
Referenced by _outA_ArrayExpr(), _outA_Indices(), _outA_Indirection(), _outA_Star(), _outAConst(), _outAExpr(), _outAgg(), _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(), _outDeclareCursorStmt(), _outDefElem(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outFieldSelect(), _outFieldStore(), _outForeignPath(), _outForeignScan(), _outFromExpr(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outGroup(), _outHash(), _outHashJoin(), _outHashPath(), _outIndexElem(), _outIndexOnlyScan(), _outIndexOptInfo(), _outIndexPath(), _outIndexScan(), _outIndexStmt(), _outIntoClause(), _outJoin(), _outJoinExpr(), _outLateralJoinInfo(), _outLimit(), _outLockingClause(), _outLockRows(), _outMaterial(), _outMaterialPath(), _outMergeAppend(), _outMergeAppendPath(), _outMergeJoin(), _outMergePath(), _outMinMaxAggInfo(), _outMinMaxExpr(), _outModifyTable(), _outNamedArgExpr(), _outNestLoop(), _outNestLoopParam(), _outNestPath(), _outNotifyStmt(), _outNullIfExpr(), _outNullTest(), _outOpExpr(), _outParam(), _outParamPathInfo(), _outParamRef(), _outPath(), _outPathKey(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlan(), _outPlanInvalItem(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlannerParamItem(), _outPlanRowMark(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTblEntry(), _outRangeTblRef(), _outRangeVar(), _outRecursiveUnion(), _outRelabelType(), _outRelOptInfo(), _outResTarget(), _outRestrictInfo(), _outResult(), _outResultPath(), _outRowCompareExpr(), _outRowExpr(), _outRowMarkClause(), _outScalarArrayOpExpr(), _outScan(), _outSelectStmt(), _outSeqScan(), _outSetOp(), _outSetOperationStmt(), _outSetToDefault(), _outSort(), _outSortBy(), _outSortGroupClause(), _outSpecialJoinInfo(), _outSubLink(), _outSubPlan(), _outSubqueryScan(), _outTableLikeClause(), _outTargetEntry(), _outTidPath(), _outTidScan(), _outTypeCast(), _outTypeName(), _outUnique(), _outUniquePath(), _outValuesScan(), _outVar(), _outWindowAgg(), _outWindowClause(), _outWindowDef(), _outWindowFunc(), _outWithClause(), _outWorkTableScan(), _outXmlExpr(), and _outXmlSerialize().
#define WRITE_OID_FIELD | ( | fldname | ) | appendStringInfo(str, " :" CppAsString(fldname) " %u", node->fldname) |
Definition at line 52 of file outfuncs.c.
Referenced by _outAggref(), _outAppendRelInfo(), _outArrayCoerceExpr(), _outArrayExpr(), _outArrayRef(), _outBitmapIndexScan(), _outCaseExpr(), _outCaseTestExpr(), _outCoalesceExpr(), _outCoerceToDomain(), _outCoerceToDomainValue(), _outCoerceViaIO(), _outCollateExpr(), _outColumnDef(), _outConst(), _outConvertRowtypeExpr(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outFieldSelect(), _outFieldStore(), _outFuncExpr(), _outHash(), _outIndexOnlyScan(), _outIndexOptInfo(), _outIndexScan(), _outIndexStmt(), _outMinMaxAggInfo(), _outMinMaxExpr(), _outNullIfExpr(), _outOpExpr(), _outParam(), _outPathKey(), _outRangeTblEntry(), _outRelabelType(), _outRestrictInfo(), _outRowExpr(), _outScalarArrayOpExpr(), _outSetToDefault(), _outSortGroupClause(), _outSubPlan(), _outTargetEntry(), _outTypeName(), _outVar(), _outWindowFunc(), and _outXmlExpr().
#define WRITE_STRING_FIELD | ( | fldname | ) |
(appendStringInfo(str, " :" CppAsString(fldname) " "), \ _outToken(str, node->fldname))
Definition at line 78 of file outfuncs.c.
Referenced by _outAlias(), _outColumnDef(), _outCommonTableExpr(), _outConstraint(), _outCreateForeignTableStmt(), _outCreateStmtInfo(), _outCurrentOfExpr(), _outDeclareCursorStmt(), _outDefElem(), _outIndexElem(), _outIndexStmt(), _outIntoClause(), _outNamedArgExpr(), _outNotifyStmt(), _outRangeTblEntry(), _outRangeVar(), _outResTarget(), _outSubPlan(), _outTargetEntry(), _outWindowClause(), _outWindowDef(), and _outXmlExpr().
#define WRITE_UINT_FIELD | ( | fldname | ) | appendStringInfo(str, " :" CppAsString(fldname) " %u", node->fldname) |
Definition at line 48 of file outfuncs.c.
Referenced by _outAggref(), _outAppendRelInfo(), _outCurrentOfExpr(), _outEquivalenceClass(), _outIndexOptInfo(), _outLateralJoinInfo(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlanInvalItem(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlanRowMark(), _outRangeTblEntry(), _outRelOptInfo(), _outRowMarkClause(), _outScanInfo(), _outSortGroupClause(), _outTableLikeClause(), _outTargetEntry(), _outVar(), _outWindowAgg(), _outWindowClause(), and _outWindowFunc().
static void _outA_ArrayExpr | ( | StringInfo | str, | |
const A_ArrayExpr * | node | |||
) | [static] |
Definition at line 2541 of file outfuncs.c.
References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("A_ARRAYEXPR"); WRITE_NODE_FIELD(elements); WRITE_LOCATION_FIELD(location); }
static void _outA_Indices | ( | StringInfo | str, | |
const A_Indices * | node | |||
) | [static] |
Definition at line 2523 of file outfuncs.c.
References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("A_INDICES"); WRITE_NODE_FIELD(lidx); WRITE_NODE_FIELD(uidx); }
static void _outA_Indirection | ( | StringInfo | str, | |
const A_Indirection * | node | |||
) | [static] |
Definition at line 2532 of file outfuncs.c.
References arg, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("A_INDIRECTION"); WRITE_NODE_FIELD(arg); WRITE_NODE_FIELD(indirection); }
static void _outA_Star | ( | StringInfo | str, | |
const A_Star * | node | |||
) | [static] |
Definition at line 2517 of file outfuncs.c.
References WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("A_STAR"); }
static void _outAConst | ( | StringInfo | str, | |
const A_Const * | node | |||
) | [static] |
Definition at line 2507 of file outfuncs.c.
References _outValue(), appendStringInfo(), A_Const::val, WRITE_LOCATION_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("A_CONST"); appendStringInfo(str, " :val "); _outValue(str, &(node->val)); WRITE_LOCATION_FIELD(location); }
static void _outAExpr | ( | StringInfo | str, | |
const A_Expr * | node | |||
) | [static] |
Definition at line 2398 of file outfuncs.c.
References AEXPR_AND, AEXPR_DISTINCT, AEXPR_IN, AEXPR_NOT, AEXPR_NULLIF, AEXPR_OF, AEXPR_OP, AEXPR_OP_ALL, AEXPR_OP_ANY, AEXPR_OR, appendStringInfo(), A_Expr::kind, name, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("AEXPR"); switch (node->kind) { case AEXPR_OP: appendStringInfo(str, " "); WRITE_NODE_FIELD(name); break; case AEXPR_AND: appendStringInfo(str, " AND"); break; case AEXPR_OR: appendStringInfo(str, " OR"); break; case AEXPR_NOT: appendStringInfo(str, " NOT"); break; case AEXPR_OP_ANY: appendStringInfo(str, " "); WRITE_NODE_FIELD(name); appendStringInfo(str, " ANY "); break; case AEXPR_OP_ALL: appendStringInfo(str, " "); WRITE_NODE_FIELD(name); appendStringInfo(str, " ALL "); break; case AEXPR_DISTINCT: appendStringInfo(str, " DISTINCT "); WRITE_NODE_FIELD(name); break; case AEXPR_NULLIF: appendStringInfo(str, " NULLIF "); WRITE_NODE_FIELD(name); break; case AEXPR_OF: appendStringInfo(str, " OF "); WRITE_NODE_FIELD(name); break; case AEXPR_IN: appendStringInfo(str, " IN "); WRITE_NODE_FIELD(name); break; default: appendStringInfo(str, " ??"); break; } WRITE_NODE_FIELD(lexpr); WRITE_NODE_FIELD(rexpr); WRITE_LOCATION_FIELD(location); }
static void _outAgg | ( | StringInfo | str, | |
const Agg * | node | |||
) | [static] |
Definition at line 628 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), i, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LONG_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("AGG"); _outPlanInfo(str, (const Plan *) node); WRITE_ENUM_FIELD(aggstrategy, AggStrategy); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :grpColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->grpColIdx[i]); appendStringInfo(str, " :grpOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->grpOperators[i]); WRITE_LONG_FIELD(numGroups); }
static void _outAggref | ( | StringInfo | str, | |
const Aggref * | node | |||
) | [static] |
Definition at line 950 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("AGGREF"); WRITE_OID_FIELD(aggfnoid); WRITE_OID_FIELD(aggtype); WRITE_OID_FIELD(aggcollid); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_NODE_FIELD(aggorder); WRITE_NODE_FIELD(aggdistinct); WRITE_BOOL_FIELD(aggstar); WRITE_UINT_FIELD(agglevelsup); WRITE_LOCATION_FIELD(location); }
static void _outAlias | ( | StringInfo | str, | |
const Alias * | node | |||
) | [static] |
Definition at line 861 of file outfuncs.c.
References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ALIAS"); WRITE_STRING_FIELD(aliasname); WRITE_NODE_FIELD(colnames); }
static void _outAlternativeSubPlan | ( | StringInfo | str, | |
const AlternativeSubPlan * | node | |||
) | [static] |
Definition at line 1144 of file outfuncs.c.
References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ALTERNATIVESUBPLAN"); WRITE_NODE_FIELD(subplans); }
static void _outAppend | ( | StringInfo | str, | |
const Append * | node | |||
) | [static] |
Definition at line 342 of file outfuncs.c.
References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("APPEND"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(appendplans); }
static void _outAppendPath | ( | StringInfo | str, | |
const AppendPath * | node | |||
) | [static] |
Definition at line 1581 of file outfuncs.c.
References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("APPENDPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(subpaths); }
static void _outAppendRelInfo | ( | StringInfo | str, | |
const AppendRelInfo * | node | |||
) | [static] |
Definition at line 1917 of file outfuncs.c.
References WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("APPENDRELINFO"); WRITE_UINT_FIELD(parent_relid); WRITE_UINT_FIELD(child_relid); WRITE_OID_FIELD(parent_reltype); WRITE_OID_FIELD(child_reltype); WRITE_NODE_FIELD(translated_vars); WRITE_OID_FIELD(parent_reloid); }
static void _outArrayCoerceExpr | ( | StringInfo | str, | |
const ArrayCoerceExpr * | node | |||
) | [static] |
Definition at line 1200 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().
{ WRITE_NODE_TYPE("ARRAYCOERCEEXPR"); WRITE_NODE_FIELD(arg); WRITE_OID_FIELD(elemfuncid); WRITE_OID_FIELD(resulttype); WRITE_INT_FIELD(resulttypmod); WRITE_OID_FIELD(resultcollid); WRITE_BOOL_FIELD(isExplicit); WRITE_ENUM_FIELD(coerceformat, CoercionForm); WRITE_LOCATION_FIELD(location); }
static void _outArrayExpr | ( | StringInfo | str, | |
const ArrayExpr * | node | |||
) | [static] |
Definition at line 1269 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ARRAY"); WRITE_OID_FIELD(array_typeid); WRITE_OID_FIELD(array_collid); WRITE_OID_FIELD(element_typeid); WRITE_NODE_FIELD(elements); WRITE_BOOL_FIELD(multidims); WRITE_LOCATION_FIELD(location); }
static void _outArrayRef | ( | StringInfo | str, | |
const ArrayRef * | node | |||
) | [static] |
Definition at line 983 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ARRAYREF"); WRITE_OID_FIELD(refarraytype); WRITE_OID_FIELD(refelemtype); WRITE_INT_FIELD(reftypmod); WRITE_OID_FIELD(refcollid); WRITE_NODE_FIELD(refupperindexpr); WRITE_NODE_FIELD(reflowerindexpr); WRITE_NODE_FIELD(refexpr); WRITE_NODE_FIELD(refassgnexpr); }
static void _outBitmapAnd | ( | StringInfo | str, | |
const BitmapAnd * | node | |||
) | [static] |
Definition at line 405 of file outfuncs.c.
References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPAND"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(bitmapplans); }
static void _outBitmapAndPath | ( | StringInfo | str, | |
const BitmapAndPath * | node | |||
) | [static] |
Definition at line 1539 of file outfuncs.c.
References _outPathInfo(), WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPANDPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(bitmapquals); WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f"); }
static void _outBitmapHeapPath | ( | StringInfo | str, | |
const BitmapHeapPath * | node | |||
) | [static] |
Definition at line 1529 of file outfuncs.c.
References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPHEAPPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(bitmapqual); }
static void _outBitmapHeapScan | ( | StringInfo | str, | |
const BitmapHeapScan * | node | |||
) | [static] |
Definition at line 482 of file outfuncs.c.
References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPHEAPSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_NODE_FIELD(bitmapqualorig); }
static void _outBitmapIndexScan | ( | StringInfo | str, | |
const BitmapIndexScan * | node | |||
) | [static] |
Definition at line 470 of file outfuncs.c.
References _outScanInfo(), WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPINDEXSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_OID_FIELD(indexid); WRITE_NODE_FIELD(indexqual); WRITE_NODE_FIELD(indexqualorig); }
static void _outBitmapOr | ( | StringInfo | str, | |
const BitmapOr * | node | |||
) | [static] |
Definition at line 415 of file outfuncs.c.
References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPOR"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(bitmapplans); }
static void _outBitmapOrPath | ( | StringInfo | str, | |
const BitmapOrPath * | node | |||
) | [static] |
Definition at line 1550 of file outfuncs.c.
References _outPathInfo(), WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BITMAPORPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(bitmapquals); WRITE_FLOAT_FIELD(bitmapselectivity, "%.4f"); }
static void _outBitmapset | ( | StringInfo | str, | |
const Bitmapset * | bms | |||
) | [static] |
Definition at line 185 of file outfuncs.c.
References appendStringInfo(), appendStringInfoChar(), bms_copy(), bms_first_member(), and bms_free().
Referenced by _outPathInfo().
{ Bitmapset *tmpset; int x; appendStringInfoChar(str, '('); appendStringInfoChar(str, 'b'); tmpset = bms_copy(bms); while ((x = bms_first_member(tmpset)) >= 0) appendStringInfo(str, " %d", x); bms_free(tmpset); appendStringInfoChar(str, ')'); }
static void _outBooleanTest | ( | StringInfo | str, | |
const BooleanTest * | node | |||
) | [static] |
Definition at line 1357 of file outfuncs.c.
References arg, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("BOOLEANTEST"); WRITE_NODE_FIELD(arg); WRITE_ENUM_FIELD(booltesttype, BoolTestType); }
static void _outBoolExpr | ( | StringInfo | str, | |
const BoolExpr * | node | |||
) | [static] |
Definition at line 1083 of file outfuncs.c.
References _outToken(), AND_EXPR, appendStringInfo(), BoolExpr::boolop, NOT_EXPR, OR_EXPR, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ char *opstr = NULL; WRITE_NODE_TYPE("BOOLEXPR"); /* do-it-yourself enum representation */ switch (node->boolop) { case AND_EXPR: opstr = "and"; break; case OR_EXPR: opstr = "or"; break; case NOT_EXPR: opstr = "not"; break; } appendStringInfo(str, " :boolop "); _outToken(str, opstr); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outCaseExpr | ( | StringInfo | str, | |
const CaseExpr * | node | |||
) | [static] |
Definition at line 1236 of file outfuncs.c.
References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CASE"); WRITE_OID_FIELD(casetype); WRITE_OID_FIELD(casecollid); WRITE_NODE_FIELD(arg); WRITE_NODE_FIELD(args); WRITE_NODE_FIELD(defresult); WRITE_LOCATION_FIELD(location); }
static void _outCaseTestExpr | ( | StringInfo | str, | |
const CaseTestExpr * | node | |||
) | [static] |
Definition at line 1259 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CASETESTEXPR"); WRITE_OID_FIELD(typeId); WRITE_INT_FIELD(typeMod); WRITE_OID_FIELD(collation); }
static void _outCaseWhen | ( | StringInfo | str, | |
const CaseWhen * | node | |||
) | [static] |
Definition at line 1249 of file outfuncs.c.
References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("WHEN"); WRITE_NODE_FIELD(expr); WRITE_NODE_FIELD(result); WRITE_LOCATION_FIELD(location); }
static void _outCoalesceExpr | ( | StringInfo | str, | |
const CoalesceExpr * | node | |||
) | [static] |
Definition at line 1307 of file outfuncs.c.
References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("COALESCE"); WRITE_OID_FIELD(coalescetype); WRITE_OID_FIELD(coalescecollid); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outCoerceToDomain | ( | StringInfo | str, | |
const CoerceToDomain * | node | |||
) | [static] |
Definition at line 1366 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().
{ WRITE_NODE_TYPE("COERCETODOMAIN"); WRITE_NODE_FIELD(arg); WRITE_OID_FIELD(resulttype); WRITE_INT_FIELD(resulttypmod); WRITE_OID_FIELD(resultcollid); WRITE_ENUM_FIELD(coercionformat, CoercionForm); WRITE_LOCATION_FIELD(location); }
static void _outCoerceToDomainValue | ( | StringInfo | str, | |
const CoerceToDomainValue * | node | |||
) | [static] |
Definition at line 1379 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("COERCETODOMAINVALUE"); WRITE_OID_FIELD(typeId); WRITE_INT_FIELD(typeMod); WRITE_OID_FIELD(collation); WRITE_LOCATION_FIELD(location); }
static void _outCoerceViaIO | ( | StringInfo | str, | |
const CoerceViaIO * | node | |||
) | [static] |
Definition at line 1188 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().
{ WRITE_NODE_TYPE("COERCEVIAIO"); WRITE_NODE_FIELD(arg); WRITE_OID_FIELD(resulttype); WRITE_OID_FIELD(resultcollid); WRITE_ENUM_FIELD(coerceformat, CoercionForm); WRITE_LOCATION_FIELD(location); }
static void _outCollateClause | ( | StringInfo | str, | |
const CollateClause * | node | |||
) | [static] |
Definition at line 2177 of file outfuncs.c.
References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("COLLATECLAUSE"); WRITE_NODE_FIELD(arg); WRITE_NODE_FIELD(collname); WRITE_LOCATION_FIELD(location); }
static void _outCollateExpr | ( | StringInfo | str, | |
const CollateExpr * | node | |||
) | [static] |
Definition at line 1226 of file outfuncs.c.
References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("COLLATE"); WRITE_NODE_FIELD(arg); WRITE_OID_FIELD(collOid); WRITE_LOCATION_FIELD(location); }
static void _outColumnDef | ( | StringInfo | str, | |
const ColumnDef * | node | |||
) | [static] |
Definition at line 2132 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_CHAR_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("COLUMNDEF"); WRITE_STRING_FIELD(colname); WRITE_NODE_FIELD(typeName); WRITE_INT_FIELD(inhcount); WRITE_BOOL_FIELD(is_local); WRITE_BOOL_FIELD(is_not_null); WRITE_BOOL_FIELD(is_from_type); WRITE_CHAR_FIELD(storage); WRITE_NODE_FIELD(raw_default); WRITE_NODE_FIELD(cooked_default); WRITE_NODE_FIELD(collClause); WRITE_OID_FIELD(collOid); WRITE_NODE_FIELD(constraints); WRITE_NODE_FIELD(fdwoptions); }
static void _outColumnRef | ( | StringInfo | str, | |
const ColumnRef * | node | |||
) | [static] |
Definition at line 2489 of file outfuncs.c.
References WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("COLUMNREF"); WRITE_NODE_FIELD(fields); WRITE_LOCATION_FIELD(location); }
static void _outCommonTableExpr | ( | StringInfo | str, | |
const CommonTableExpr * | node | |||
) | [static] |
Definition at line 2310 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().
{ WRITE_NODE_TYPE("COMMONTABLEEXPR"); WRITE_STRING_FIELD(ctename); WRITE_NODE_FIELD(aliascolnames); WRITE_NODE_FIELD(ctequery); WRITE_LOCATION_FIELD(location); WRITE_BOOL_FIELD(cterecursive); WRITE_INT_FIELD(cterefcount); WRITE_NODE_FIELD(ctecolnames); WRITE_NODE_FIELD(ctecoltypes); WRITE_NODE_FIELD(ctecoltypmods); WRITE_NODE_FIELD(ctecolcollations); }
static void _outConst | ( | StringInfo | str, | |
const Const * | node | |||
) | [static] |
Definition at line 917 of file outfuncs.c.
References _outDatum(), appendStringInfo(), Const::constbyval, Const::constisnull, Const::constlen, Const::constvalue, WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CONST"); WRITE_OID_FIELD(consttype); WRITE_INT_FIELD(consttypmod); WRITE_OID_FIELD(constcollid); WRITE_INT_FIELD(constlen); WRITE_BOOL_FIELD(constbyval); WRITE_BOOL_FIELD(constisnull); WRITE_LOCATION_FIELD(location); appendStringInfo(str, " :constvalue "); if (node->constisnull) appendStringInfo(str, "<>"); else _outDatum(str, node->constvalue, node->constlen, node->constbyval); }
static void _outConstraint | ( | StringInfo | str, | |
const Constraint * | node | |||
) | [static] |
Definition at line 2609 of file outfuncs.c.
References appendStringInfo(), 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, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CONSTRAINT"); WRITE_STRING_FIELD(conname); WRITE_BOOL_FIELD(deferrable); WRITE_BOOL_FIELD(initdeferred); WRITE_LOCATION_FIELD(location); appendStringInfo(str, " :contype "); switch (node->contype) { case CONSTR_NULL: appendStringInfo(str, "NULL"); break; case CONSTR_NOTNULL: appendStringInfo(str, "NOT_NULL"); break; case CONSTR_DEFAULT: appendStringInfo(str, "DEFAULT"); WRITE_NODE_FIELD(raw_expr); WRITE_STRING_FIELD(cooked_expr); break; case CONSTR_CHECK: appendStringInfo(str, "CHECK"); WRITE_BOOL_FIELD(is_no_inherit); WRITE_NODE_FIELD(raw_expr); WRITE_STRING_FIELD(cooked_expr); break; case CONSTR_PRIMARY: appendStringInfo(str, "PRIMARY_KEY"); WRITE_NODE_FIELD(keys); WRITE_NODE_FIELD(options); WRITE_STRING_FIELD(indexname); WRITE_STRING_FIELD(indexspace); /* access_method and where_clause not currently used */ break; case CONSTR_UNIQUE: appendStringInfo(str, "UNIQUE"); WRITE_NODE_FIELD(keys); WRITE_NODE_FIELD(options); WRITE_STRING_FIELD(indexname); WRITE_STRING_FIELD(indexspace); /* access_method and where_clause not currently used */ break; case CONSTR_EXCLUSION: appendStringInfo(str, "EXCLUSION"); WRITE_NODE_FIELD(exclusions); WRITE_NODE_FIELD(options); WRITE_STRING_FIELD(indexname); WRITE_STRING_FIELD(indexspace); WRITE_STRING_FIELD(access_method); WRITE_NODE_FIELD(where_clause); break; case CONSTR_FOREIGN: appendStringInfo(str, "FOREIGN_KEY"); WRITE_NODE_FIELD(pktable); WRITE_NODE_FIELD(fk_attrs); WRITE_NODE_FIELD(pk_attrs); WRITE_CHAR_FIELD(fk_matchtype); WRITE_CHAR_FIELD(fk_upd_action); WRITE_CHAR_FIELD(fk_del_action); WRITE_NODE_FIELD(old_conpfeqop); WRITE_BOOL_FIELD(skip_validation); WRITE_BOOL_FIELD(initially_valid); break; case CONSTR_ATTR_DEFERRABLE: appendStringInfo(str, "ATTR_DEFERRABLE"); break; case CONSTR_ATTR_NOT_DEFERRABLE: appendStringInfo(str, "ATTR_NOT_DEFERRABLE"); break; case CONSTR_ATTR_DEFERRED: appendStringInfo(str, "ATTR_DEFERRED"); break; case CONSTR_ATTR_IMMEDIATE: appendStringInfo(str, "ATTR_IMMEDIATE"); break; default: appendStringInfo(str, "<unrecognized_constraint %d>", (int) node->contype); break; } }
static void _outConvertRowtypeExpr | ( | StringInfo | str, | |
const ConvertRowtypeExpr * | node | |||
) | [static] |
Definition at line 1215 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().
{ WRITE_NODE_TYPE("CONVERTROWTYPEEXPR"); WRITE_NODE_FIELD(arg); WRITE_OID_FIELD(resulttype); WRITE_ENUM_FIELD(convertformat, CoercionForm); WRITE_LOCATION_FIELD(location); }
static void _outCreateForeignTableStmt | ( | StringInfo | str, | |
const CreateForeignTableStmt * | node | |||
) | [static] |
Definition at line 1997 of file outfuncs.c.
References _outCreateStmtInfo(), WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT"); _outCreateStmtInfo(str, (const CreateStmt *) node); WRITE_STRING_FIELD(servername); WRITE_NODE_FIELD(options); }
static void _outCreateStmt | ( | StringInfo | str, | |
const CreateStmt * | node | |||
) | [static] |
Definition at line 1989 of file outfuncs.c.
References _outCreateStmtInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CREATESTMT"); _outCreateStmtInfo(str, (const CreateStmt *) node); }
static void _outCreateStmtInfo | ( | StringInfo | str, | |
const CreateStmt * | node | |||
) | [static] |
Definition at line 1975 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_STRING_FIELD.
Referenced by _outCreateForeignTableStmt(), and _outCreateStmt().
{ WRITE_NODE_FIELD(relation); WRITE_NODE_FIELD(tableElts); WRITE_NODE_FIELD(inhRelations); WRITE_NODE_FIELD(ofTypename); WRITE_NODE_FIELD(constraints); WRITE_NODE_FIELD(options); WRITE_ENUM_FIELD(oncommit, OnCommitAction); WRITE_STRING_FIELD(tablespacename); WRITE_BOOL_FIELD(if_not_exists); }
static void _outCteScan | ( | StringInfo | str, | |
const CteScan * | node | |||
) | [static] |
Definition at line 536 of file outfuncs.c.
References _outScanInfo(), WRITE_INT_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CTESCAN"); _outScanInfo(str, (const Scan *) node); WRITE_INT_FIELD(ctePlanId); WRITE_INT_FIELD(cteParam); }
static void _outCurrentOfExpr | ( | StringInfo | str, | |
const CurrentOfExpr * | node | |||
) | [static] |
Definition at line 1401 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_TYPE, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("CURRENTOFEXPR"); WRITE_UINT_FIELD(cvarno); WRITE_STRING_FIELD(cursor_name); WRITE_INT_FIELD(cursor_param); }
static void _outDatum | ( | StringInfo | str, | |
Datum | value, | |||
int | typlen, | |||
bool | typbyval | |||
) | [static] |
Definition at line 203 of file outfuncs.c.
References appendStringInfo(), DatumGetPointer, datumGetSize(), i, and PointerIsValid.
Referenced by _outConst().
{ Size length, i; char *s; length = datumGetSize(value, typbyval, typlen); if (typbyval) { s = (char *) (&value); appendStringInfo(str, "%u [ ", (unsigned int) length); for (i = 0; i < (Size) sizeof(Datum); i++) appendStringInfo(str, "%d ", (int) (s[i])); appendStringInfo(str, "]"); } else { s = (char *) DatumGetPointer(value); if (!PointerIsValid(s)) appendStringInfo(str, "0 [ ]"); else { appendStringInfo(str, "%u [ ", (unsigned int) length); for (i = 0; i < length; i++) appendStringInfo(str, "%d ", (int) (s[i])); appendStringInfo(str, "]"); } } }
static void _outDeclareCursorStmt | ( | StringInfo | str, | |
const DeclareCursorStmt * | node | |||
) | [static] |
Definition at line 2041 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("DECLARECURSOR"); WRITE_STRING_FIELD(portalname); WRITE_INT_FIELD(options); WRITE_NODE_FIELD(query); }
static void _outDefElem | ( | StringInfo | str, | |
const DefElem * | node | |||
) | [static] |
Definition at line 2091 of file outfuncs.c.
References arg, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("DEFELEM"); WRITE_STRING_FIELD(defnamespace); WRITE_STRING_FIELD(defname); WRITE_NODE_FIELD(arg); WRITE_ENUM_FIELD(defaction, DefElemAction); }
static void _outDistinctExpr | ( | StringInfo | str, | |
const DistinctExpr * | node | |||
) | [static] |
Definition at line 1040 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("DISTINCTEXPR"); WRITE_OID_FIELD(opno); WRITE_OID_FIELD(opfuncid); WRITE_OID_FIELD(opresulttype); WRITE_BOOL_FIELD(opretset); WRITE_OID_FIELD(opcollid); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outEquivalenceClass | ( | StringInfo | str, | |
const EquivalenceClass * | node | |||
) | [static] |
Definition at line 1793 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().
{ /* * To simplify reading, we just chase up to the topmost merged EC and * print that, without bothering to show the merge-ees separately. */ while (node->ec_merged) node = node->ec_merged; WRITE_NODE_TYPE("EQUIVALENCECLASS"); WRITE_NODE_FIELD(ec_opfamilies); WRITE_OID_FIELD(ec_collation); WRITE_NODE_FIELD(ec_members); WRITE_NODE_FIELD(ec_sources); WRITE_NODE_FIELD(ec_derives); WRITE_BITMAPSET_FIELD(ec_relids); WRITE_BOOL_FIELD(ec_has_const); WRITE_BOOL_FIELD(ec_has_volatile); WRITE_BOOL_FIELD(ec_below_outer_join); WRITE_BOOL_FIELD(ec_broken); WRITE_UINT_FIELD(ec_sortref); }
static void _outEquivalenceMember | ( | StringInfo | str, | |
const EquivalenceMember * | node | |||
) | [static] |
Definition at line 1818 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("EQUIVALENCEMEMBER"); WRITE_NODE_FIELD(em_expr); WRITE_BITMAPSET_FIELD(em_relids); WRITE_BITMAPSET_FIELD(em_nullable_relids); WRITE_BOOL_FIELD(em_is_const); WRITE_BOOL_FIELD(em_is_child); WRITE_OID_FIELD(em_datatype); }
static void _outFieldSelect | ( | StringInfo | str, | |
const FieldSelect * | node | |||
) | [static] |
Definition at line 1152 of file outfuncs.c.
References arg, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FIELDSELECT"); WRITE_NODE_FIELD(arg); WRITE_INT_FIELD(fieldnum); WRITE_OID_FIELD(resulttype); WRITE_INT_FIELD(resulttypmod); WRITE_OID_FIELD(resultcollid); }
static void _outFieldStore | ( | StringInfo | str, | |
const FieldStore * | node | |||
) | [static] |
Definition at line 1164 of file outfuncs.c.
References arg, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FIELDSTORE"); WRITE_NODE_FIELD(arg); WRITE_NODE_FIELD(newvals); WRITE_NODE_FIELD(fieldnums); WRITE_OID_FIELD(resulttype); }
static void _outForeignPath | ( | StringInfo | str, | |
const ForeignPath * | node | |||
) | [static] |
Definition at line 1571 of file outfuncs.c.
References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FOREIGNPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(fdw_private); }
static void _outForeignScan | ( | StringInfo | str, | |
const ForeignScan * | node | |||
) | [static] |
Definition at line 557 of file outfuncs.c.
References _outScanInfo(), WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FOREIGNSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_NODE_FIELD(fdw_exprs); WRITE_NODE_FIELD(fdw_private); WRITE_BOOL_FIELD(fsSystemCol); }
static void _outFromExpr | ( | StringInfo | str, | |
const FromExpr * | node | |||
) | [static] |
Definition at line 1448 of file outfuncs.c.
References WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FROMEXPR"); WRITE_NODE_FIELD(fromlist); WRITE_NODE_FIELD(quals); }
static void _outFuncCall | ( | StringInfo | str, | |
const FuncCall * | node | |||
) | [static] |
Definition at line 2076 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FUNCCALL"); WRITE_NODE_FIELD(funcname); WRITE_NODE_FIELD(args); WRITE_NODE_FIELD(agg_order); WRITE_BOOL_FIELD(agg_star); WRITE_BOOL_FIELD(agg_distinct); WRITE_BOOL_FIELD(func_variadic); WRITE_NODE_FIELD(over); WRITE_LOCATION_FIELD(location); }
static void _outFuncExpr | ( | StringInfo | str, | |
const FuncExpr * | node | |||
) | [static] |
Definition at line 998 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FUNCEXPR"); WRITE_OID_FIELD(funcid); WRITE_OID_FIELD(funcresulttype); WRITE_BOOL_FIELD(funcretset); WRITE_BOOL_FIELD(funcvariadic); WRITE_ENUM_FIELD(funcformat, CoercionForm); WRITE_OID_FIELD(funccollid); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outFunctionScan | ( | StringInfo | str, | |
const FunctionScan * | node | |||
) | [static] |
Definition at line 512 of file outfuncs.c.
References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("FUNCTIONSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_NODE_FIELD(funcexpr); WRITE_NODE_FIELD(funccolnames); WRITE_NODE_FIELD(funccoltypes); WRITE_NODE_FIELD(funccoltypmods); WRITE_NODE_FIELD(funccolcollations); }
static void _outGroup | ( | StringInfo | str, | |
const Group * | node | |||
) | [static] |
Definition at line 686 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), i, WRITE_INT_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("GROUP"); _outPlanInfo(str, (const Plan *) node); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :grpColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->grpColIdx[i]); appendStringInfo(str, " :grpOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->grpOperators[i]); }
static void _outHash | ( | StringInfo | str, | |
const Hash * | node | |||
) | [static] |
Definition at line 762 of file outfuncs.c.
References _outPlanInfo(), WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("HASH"); _outPlanInfo(str, (const Plan *) node); WRITE_OID_FIELD(skewTable); WRITE_INT_FIELD(skewColumn); WRITE_BOOL_FIELD(skewInherit); WRITE_OID_FIELD(skewColType); WRITE_INT_FIELD(skewColTypmod); }
static void _outHashJoin | ( | StringInfo | str, | |
const HashJoin * | node | |||
) | [static] |
Definition at line 618 of file outfuncs.c.
References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("HASHJOIN"); _outJoinPlanInfo(str, (const Join *) node); WRITE_NODE_FIELD(hashclauses); }
static void _outHashPath | ( | StringInfo | str, | |
const HashPath * | node | |||
) | [static] |
Definition at line 1656 of file outfuncs.c.
References _outJoinPathInfo(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("HASHPATH"); _outJoinPathInfo(str, (const JoinPath *) node); WRITE_NODE_FIELD(path_hashclauses); WRITE_INT_FIELD(num_batches); }
static void _outIndexElem | ( | StringInfo | str, | |
const IndexElem * | node | |||
) | [static] |
Definition at line 2187 of file outfuncs.c.
References name, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("INDEXELEM"); WRITE_STRING_FIELD(name); WRITE_NODE_FIELD(expr); WRITE_STRING_FIELD(indexcolname); WRITE_NODE_FIELD(collation); WRITE_NODE_FIELD(opclass); WRITE_ENUM_FIELD(ordering, SortByDir); WRITE_ENUM_FIELD(nulls_ordering, SortByNulls); }
static void _outIndexOnlyScan | ( | StringInfo | str, | |
const IndexOnlyScan * | node | |||
) | [static] |
Definition at line 456 of file outfuncs.c.
References _outScanInfo(), WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("INDEXONLYSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_OID_FIELD(indexid); WRITE_NODE_FIELD(indexqual); WRITE_NODE_FIELD(indexorderby); WRITE_NODE_FIELD(indextlist); WRITE_ENUM_FIELD(indexorderdir, ScanDirection); }
static void _outIndexOptInfo | ( | StringInfo | str, | |
const IndexOptInfo * | node | |||
) | [static] |
Definition at line 1769 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().
{ WRITE_NODE_TYPE("INDEXOPTINFO"); /* NB: this isn't a complete set of fields */ WRITE_OID_FIELD(indexoid); /* Do NOT print rel field, else infinite recursion */ WRITE_UINT_FIELD(pages); WRITE_FLOAT_FIELD(tuples, "%.0f"); WRITE_INT_FIELD(tree_height); WRITE_INT_FIELD(ncolumns); /* array fields aren't really worth the trouble to print */ WRITE_OID_FIELD(relam); /* indexprs is redundant since we print indextlist */ WRITE_NODE_FIELD(indpred); WRITE_NODE_FIELD(indextlist); WRITE_BOOL_FIELD(predOK); WRITE_BOOL_FIELD(unique); WRITE_BOOL_FIELD(immediate); WRITE_BOOL_FIELD(hypothetical); /* we don't bother with fields copied from the pg_am entry */ }
static void _outIndexPath | ( | StringInfo | str, | |
const IndexPath * | node | |||
) | [static] |
Definition at line 1511 of file outfuncs.c.
References _outPathInfo(), WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("INDEXPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(indexinfo); WRITE_NODE_FIELD(indexclauses); WRITE_NODE_FIELD(indexquals); WRITE_NODE_FIELD(indexqualcols); WRITE_NODE_FIELD(indexorderbys); WRITE_NODE_FIELD(indexorderbycols); WRITE_ENUM_FIELD(indexscandir, ScanDirection); WRITE_FLOAT_FIELD(indextotalcost, "%.2f"); WRITE_FLOAT_FIELD(indexselectivity, "%.4f"); }
static void _outIndexScan | ( | StringInfo | str, | |
const IndexScan * | node | |||
) | [static] |
Definition at line 441 of file outfuncs.c.
References _outScanInfo(), WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("INDEXSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_OID_FIELD(indexid); WRITE_NODE_FIELD(indexqual); WRITE_NODE_FIELD(indexqualorig); WRITE_NODE_FIELD(indexorderby); WRITE_NODE_FIELD(indexorderbyorig); WRITE_ENUM_FIELD(indexorderdir, ScanDirection); }
static void _outIndexStmt | ( | StringInfo | str, | |
const IndexStmt * | node | |||
) | [static] |
Definition at line 2008 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("INDEXSTMT"); WRITE_STRING_FIELD(idxname); WRITE_NODE_FIELD(relation); WRITE_STRING_FIELD(accessMethod); WRITE_STRING_FIELD(tableSpace); WRITE_NODE_FIELD(indexParams); WRITE_NODE_FIELD(options); WRITE_NODE_FIELD(whereClause); WRITE_NODE_FIELD(excludeOpNames); WRITE_STRING_FIELD(idxcomment); WRITE_OID_FIELD(indexOid); WRITE_OID_FIELD(oldNode); WRITE_BOOL_FIELD(unique); WRITE_BOOL_FIELD(primary); WRITE_BOOL_FIELD(isconstraint); WRITE_BOOL_FIELD(deferrable); WRITE_BOOL_FIELD(initdeferred); WRITE_BOOL_FIELD(concurrent); }
static void _outIntoClause | ( | StringInfo | str, | |
const IntoClause * | node | |||
) | [static] |
Definition at line 887 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("INTOCLAUSE"); WRITE_NODE_FIELD(rel); WRITE_NODE_FIELD(colNames); WRITE_NODE_FIELD(options); WRITE_ENUM_FIELD(onCommit, OnCommitAction); WRITE_STRING_FIELD(tableSpaceName); WRITE_NODE_FIELD(viewQuery); WRITE_BOOL_FIELD(skipData); }
static void _outJoin | ( | StringInfo | str, | |
const Join * | node | |||
) | [static] |
Definition at line 569 of file outfuncs.c.
References _outJoinPlanInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("JOIN"); _outJoinPlanInfo(str, (const Join *) node); }
static void _outJoinExpr | ( | StringInfo | str, | |
const JoinExpr * | node | |||
) | [static] |
Definition at line 1433 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("JOINEXPR"); WRITE_ENUM_FIELD(jointype, JoinType); WRITE_BOOL_FIELD(isNatural); WRITE_NODE_FIELD(larg); WRITE_NODE_FIELD(rarg); WRITE_NODE_FIELD(usingClause); WRITE_NODE_FIELD(quals); WRITE_NODE_FIELD(alias); WRITE_INT_FIELD(rtindex); }
static void _outJoinPathInfo | ( | StringInfo | str, | |
const JoinPath * | node | |||
) | [static] |
Definition at line 1492 of file outfuncs.c.
References _outPathInfo(), WRITE_ENUM_FIELD, and WRITE_NODE_FIELD.
Referenced by _outHashPath(), _outMergePath(), and _outNestPath().
{ _outPathInfo(str, (const Path *) node); WRITE_ENUM_FIELD(jointype, JoinType); WRITE_NODE_FIELD(outerjoinpath); WRITE_NODE_FIELD(innerjoinpath); WRITE_NODE_FIELD(joinrestrictinfo); }
static void _outJoinPlanInfo | ( | StringInfo | str, | |
const Join * | node | |||
) | [static] |
Definition at line 296 of file outfuncs.c.
References _outPlanInfo(), WRITE_ENUM_FIELD, and WRITE_NODE_FIELD.
Referenced by _outHashJoin(), _outJoin(), _outMergeJoin(), and _outNestLoop().
{ _outPlanInfo(str, (const Plan *) node); WRITE_ENUM_FIELD(jointype, JoinType); WRITE_NODE_FIELD(joinqual); }
static void _outLateralJoinInfo | ( | StringInfo | str, | |
const LateralJoinInfo * | node | |||
) | [static] |
Definition at line 1908 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("LATERALJOININFO"); WRITE_UINT_FIELD(lateral_rhs); WRITE_BITMAPSET_FIELD(lateral_lhs); }
static void _outLimit | ( | StringInfo | str, | |
const Limit * | node | |||
) | [static] |
Definition at line 813 of file outfuncs.c.
References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("LIMIT"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(limitOffset); WRITE_NODE_FIELD(limitCount); }
static void _outList | ( | StringInfo | str, | |
const List * | node | |||
) | [static] |
Definition at line 142 of file outfuncs.c.
References _outNode(), appendStringInfo(), appendStringInfoChar(), elog, ERROR, IsA, lfirst, lfirst_int, lfirst_oid, lnext, and List::type.
Referenced by _outNode().
{ const ListCell *lc; appendStringInfoChar(str, '('); if (IsA(node, IntList)) appendStringInfoChar(str, 'i'); else if (IsA(node, OidList)) appendStringInfoChar(str, 'o'); foreach(lc, node) { /* * For the sake of backward compatibility, we emit a slightly * different whitespace format for lists of nodes vs. other types of * lists. XXX: is this necessary? */ if (IsA(node, List)) { _outNode(str, lfirst(lc)); if (lnext(lc)) appendStringInfoChar(str, ' '); } else if (IsA(node, IntList)) appendStringInfo(str, " %d", lfirst_int(lc)); else if (IsA(node, OidList)) appendStringInfo(str, " %u", lfirst_oid(lc)); else elog(ERROR, "unrecognized list node type: %d", (int) node->type); } appendStringInfoChar(str, ')'); }
static void _outLockingClause | ( | StringInfo | str, | |
const LockingClause * | node | |||
) | [static] |
Definition at line 2111 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("LOCKINGCLAUSE"); WRITE_NODE_FIELD(lockedRels); WRITE_ENUM_FIELD(strength, LockClauseStrength); WRITE_BOOL_FIELD(noWait); }
static void _outLockRows | ( | StringInfo | str, | |
const LockRows * | node | |||
) | [static] |
Definition at line 802 of file outfuncs.c.
References _outPlanInfo(), WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("LOCKROWS"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(rowMarks); WRITE_INT_FIELD(epqParam); }
static void _outMaterial | ( | StringInfo | str, | |
const Material * | node | |||
) | [static] |
Definition at line 706 of file outfuncs.c.
References _outPlanInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MATERIAL"); _outPlanInfo(str, (const Plan *) node); }
static void _outMaterialPath | ( | StringInfo | str, | |
const MaterialPath * | node | |||
) | [static] |
Definition at line 1612 of file outfuncs.c.
References _outPathInfo(), subpath(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MATERIALPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(subpath); }
static void _outMergeAppend | ( | StringInfo | str, | |
const MergeAppend * | node | |||
) | [static] |
Definition at line 352 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), booltostr, i, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("MERGEAPPEND"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(mergeplans); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :sortColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->sortColIdx[i]); appendStringInfo(str, " :sortOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->sortOperators[i]); appendStringInfo(str, " :collations"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->collations[i]); appendStringInfo(str, " :nullsFirst"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %s", booltostr(node->nullsFirst[i])); }
static void _outMergeAppendPath | ( | StringInfo | str, | |
const MergeAppendPath * | node | |||
) | [static] |
Definition at line 1591 of file outfuncs.c.
References _outPathInfo(), WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MERGEAPPENDPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(subpaths); WRITE_FLOAT_FIELD(limit_tuples, "%.0f"); }
static void _outMergeJoin | ( | StringInfo | str, | |
const MergeJoin * | node | |||
) | [static] |
Definition at line 587 of file outfuncs.c.
References _outJoinPlanInfo(), appendStringInfo(), i, list_length(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int numCols; int i; WRITE_NODE_TYPE("MERGEJOIN"); _outJoinPlanInfo(str, (const Join *) node); WRITE_NODE_FIELD(mergeclauses); numCols = list_length(node->mergeclauses); appendStringInfo(str, " :mergeFamilies"); for (i = 0; i < numCols; i++) appendStringInfo(str, " %u", node->mergeFamilies[i]); appendStringInfo(str, " :mergeCollations"); for (i = 0; i < numCols; i++) appendStringInfo(str, " %u", node->mergeCollations[i]); appendStringInfo(str, " :mergeStrategies"); for (i = 0; i < numCols; i++) appendStringInfo(str, " %d", node->mergeStrategies[i]); appendStringInfo(str, " :mergeNullsFirst"); for (i = 0; i < numCols; i++) appendStringInfo(str, " %d", (int) node->mergeNullsFirst[i]); }
static void _outMergePath | ( | StringInfo | str, | |
const MergePath * | node | |||
) | [static] |
Definition at line 1643 of file outfuncs.c.
References _outJoinPathInfo(), WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MERGEPATH"); _outJoinPathInfo(str, (const JoinPath *) node); WRITE_NODE_FIELD(path_mergeclauses); WRITE_NODE_FIELD(outersortkeys); WRITE_NODE_FIELD(innersortkeys); WRITE_BOOL_FIELD(materialize_inner); }
static void _outMinMaxAggInfo | ( | StringInfo | str, | |
const MinMaxAggInfo * | node | |||
) | [static] |
Definition at line 1943 of file outfuncs.c.
References WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MINMAXAGGINFO"); WRITE_OID_FIELD(aggfnoid); WRITE_OID_FIELD(aggsortop); WRITE_NODE_FIELD(target); /* We intentionally omit subroot --- too large, not interesting enough */ WRITE_NODE_FIELD(path); WRITE_FLOAT_FIELD(pathcost, "%.2f"); WRITE_NODE_FIELD(param); }
static void _outMinMaxExpr | ( | StringInfo | str, | |
const MinMaxExpr * | node | |||
) | [static] |
Definition at line 1318 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MINMAX"); WRITE_OID_FIELD(minmaxtype); WRITE_OID_FIELD(minmaxcollid); WRITE_OID_FIELD(inputcollid); WRITE_ENUM_FIELD(op, MinMaxOp); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outModifyTable | ( | StringInfo | str, | |
const ModifyTable * | node | |||
) | [static] |
Definition at line 324 of file outfuncs.c.
References _outPlanInfo(), WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("MODIFYTABLE"); _outPlanInfo(str, (const Plan *) node); WRITE_ENUM_FIELD(operation, CmdType); WRITE_BOOL_FIELD(canSetTag); WRITE_NODE_FIELD(resultRelations); WRITE_INT_FIELD(resultRelIndex); WRITE_NODE_FIELD(plans); WRITE_NODE_FIELD(returningLists); WRITE_NODE_FIELD(fdwPrivLists); WRITE_NODE_FIELD(rowMarks); WRITE_INT_FIELD(epqParam); }
static void _outNamedArgExpr | ( | StringInfo | str, | |
const NamedArgExpr * | node | |||
) | [static] |
Definition at line 1014 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().
{ WRITE_NODE_TYPE("NAMEDARGEXPR"); WRITE_NODE_FIELD(arg); WRITE_STRING_FIELD(name); WRITE_INT_FIELD(argnumber); WRITE_LOCATION_FIELD(location); }
static void _outNestLoop | ( | StringInfo | str, | |
const NestLoop * | node | |||
) | [static] |
Definition at line 577 of file outfuncs.c.
References _outJoinPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("NESTLOOP"); _outJoinPlanInfo(str, (const Join *) node); WRITE_NODE_FIELD(nestParams); }
static void _outNestLoopParam | ( | StringInfo | str, | |
const NestLoopParam * | node | |||
) | [static] |
Definition at line 824 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("NESTLOOPPARAM"); WRITE_INT_FIELD(paramno); WRITE_NODE_FIELD(paramval); }
static void _outNestPath | ( | StringInfo | str, | |
const NestPath * | node | |||
) | [static] |
Definition at line 1635 of file outfuncs.c.
References _outJoinPathInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("NESTPATH"); _outJoinPathInfo(str, (const JoinPath *) node); }
static void _outNode | ( | StringInfo | str, | |
const void * | obj | |||
) | [static] |
Definition at line 2712 of file outfuncs.c.
References _outA_ArrayExpr(), _outA_Indices(), _outA_Indirection(), _outA_Star(), _outAConst(), _outAExpr(), _outAgg(), _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(), _outDeclareCursorStmt(), _outDefElem(), _outDistinctExpr(), _outEquivalenceClass(), _outEquivalenceMember(), _outFieldSelect(), _outFieldStore(), _outForeignPath(), _outForeignScan(), _outFromExpr(), _outFuncCall(), _outFuncExpr(), _outFunctionScan(), _outGroup(), _outHash(), _outHashJoin(), _outHashPath(), _outIndexElem(), _outIndexOnlyScan(), _outIndexOptInfo(), _outIndexPath(), _outIndexScan(), _outIndexStmt(), _outIntoClause(), _outJoin(), _outJoinExpr(), _outLateralJoinInfo(), _outLimit(), _outList(), _outLockingClause(), _outLockRows(), _outMaterial(), _outMaterialPath(), _outMergeAppend(), _outMergeAppendPath(), _outMergeJoin(), _outMergePath(), _outMinMaxAggInfo(), _outMinMaxExpr(), _outModifyTable(), _outNamedArgExpr(), _outNestLoop(), _outNestLoopParam(), _outNestPath(), _outNotifyStmt(), _outNullIfExpr(), _outNullTest(), _outOpExpr(), _outParam(), _outParamPathInfo(), _outParamRef(), _outPath(), _outPathKey(), _outPlaceHolderInfo(), _outPlaceHolderVar(), _outPlan(), _outPlanInvalItem(), _outPlannedStmt(), _outPlannerGlobal(), _outPlannerInfo(), _outPlannerParamItem(), _outPlanRowMark(), _outQuery(), _outRangeFunction(), _outRangeSubselect(), _outRangeTblEntry(), _outRangeTblRef(), _outRangeVar(), _outRecursiveUnion(), _outRelabelType(), _outRelOptInfo(), _outResTarget(), _outRestrictInfo(), _outResult(), _outResultPath(), _outRowCompareExpr(), _outRowExpr(), _outRowMarkClause(), _outScalarArrayOpExpr(), _outScan(), _outSelectStmt(), _outSeqScan(), _outSetOp(), _outSetOperationStmt(), _outSetToDefault(), _outSort(), _outSortBy(), _outSortGroupClause(), _outSpecialJoinInfo(), _outSubLink(), _outSubPlan(), _outSubqueryScan(), _outTableLikeClause(), _outTargetEntry(), _outTidPath(), _outTidScan(), _outTypeCast(), _outTypeName(), _outUnique(), _outUniquePath(), _outValue(), _outValuesScan(), _outVar(), _outWindowAgg(), _outWindowClause(), _outWindowDef(), _outWindowFunc(), _outWithClause(), _outWorkTableScan(), _outXmlExpr(), _outXmlSerialize(), appendStringInfo(), appendStringInfoChar(), elog, IsA, nodeTag, NULL, T_A_ArrayExpr, T_A_Const, T_A_Expr, T_A_Indices, T_A_Indirection, T_A_Star, T_Agg, T_Aggref, T_Alias, T_AlternativeSubPlan, T_Append, T_AppendPath, T_AppendRelInfo, T_ArrayCoerceExpr, T_ArrayExpr, T_ArrayRef, T_BitmapAnd, T_BitmapAndPath, T_BitmapHeapPath, T_BitmapHeapScan, T_BitmapIndexScan, T_BitmapOr, T_BitmapOrPath, T_BooleanTest, T_BoolExpr, T_CaseExpr, T_CaseTestExpr, T_CaseWhen, T_CoalesceExpr, T_CoerceToDomain, T_CoerceToDomainValue, T_CoerceViaIO, T_CollateClause, T_CollateExpr, T_ColumnDef, T_ColumnRef, T_CommonTableExpr, T_Const, T_Constraint, T_ConvertRowtypeExpr, T_CreateForeignTableStmt, T_CreateStmt, T_CteScan, T_CurrentOfExpr, T_DeclareCursorStmt, T_DefElem, T_DistinctExpr, T_EquivalenceClass, T_EquivalenceMember, T_FieldSelect, T_FieldStore, T_ForeignPath, T_ForeignScan, T_FromExpr, T_FuncCall, T_FuncExpr, T_FunctionScan, T_Group, T_Hash, T_HashJoin, T_HashPath, T_IndexElem, T_IndexOnlyScan, T_IndexOptInfo, T_IndexPath, T_IndexScan, T_IndexStmt, T_IntoClause, T_Join, T_JoinExpr, T_LateralJoinInfo, T_Limit, T_LockingClause, T_LockRows, T_Material, T_MaterialPath, T_MergeAppend, T_MergeAppendPath, T_MergeJoin, T_MergePath, T_MinMaxAggInfo, T_MinMaxExpr, T_ModifyTable, T_NamedArgExpr, T_NestLoop, T_NestLoopParam, T_NestPath, T_NotifyStmt, T_NullIfExpr, T_NullTest, T_OpExpr, T_Param, T_ParamPathInfo, T_ParamRef, T_Path, T_PathKey, T_PlaceHolderInfo, T_PlaceHolderVar, T_Plan, T_PlanInvalItem, T_PlannedStmt, T_PlannerGlobal, T_PlannerInfo, T_PlannerParamItem, T_PlanRowMark, T_Query, T_RangeFunction, T_RangeSubselect, T_RangeTblEntry, T_RangeTblRef, T_RangeVar, T_RecursiveUnion, T_RelabelType, T_RelOptInfo, T_ResTarget, T_RestrictInfo, T_Result, T_ResultPath, T_RowCompareExpr, T_RowExpr, T_RowMarkClause, T_ScalarArrayOpExpr, T_Scan, T_SelectStmt, T_SeqScan, T_SetOp, T_SetOperationStmt, T_SetToDefault, T_Sort, T_SortBy, T_SortGroupClause, T_SpecialJoinInfo, T_SubLink, T_SubPlan, T_SubqueryScan, T_TableLikeClause, T_TargetEntry, T_TidPath, T_TidScan, T_TypeCast, T_TypeName, T_Unique, T_UniquePath, T_ValuesScan, T_Var, T_WindowAgg, T_WindowClause, T_WindowDef, T_WindowFunc, T_WithClause, T_WorkTableScan, T_XmlExpr, T_XmlSerialize, and WARNING.
Referenced by _outList(), and nodeToString().
{ if (obj == NULL) appendStringInfo(str, "<>"); else if (IsA(obj, List) ||IsA(obj, IntList) || IsA(obj, OidList)) _outList(str, obj); else if (IsA(obj, Integer) || IsA(obj, Float) || IsA(obj, String) || IsA(obj, BitString)) { /* nodeRead does not want to see { } around these! */ _outValue(str, obj); } else { appendStringInfoChar(str, '{'); switch (nodeTag(obj)) { case T_PlannedStmt: _outPlannedStmt(str, obj); break; case T_Plan: _outPlan(str, obj); break; case T_Result: _outResult(str, obj); break; case T_ModifyTable: _outModifyTable(str, obj); break; case T_Append: _outAppend(str, obj); break; case T_MergeAppend: _outMergeAppend(str, obj); break; case T_RecursiveUnion: _outRecursiveUnion(str, obj); break; case T_BitmapAnd: _outBitmapAnd(str, obj); break; case T_BitmapOr: _outBitmapOr(str, obj); break; case T_Scan: _outScan(str, obj); break; case T_SeqScan: _outSeqScan(str, obj); break; case T_IndexScan: _outIndexScan(str, obj); break; case T_IndexOnlyScan: _outIndexOnlyScan(str, obj); break; case T_BitmapIndexScan: _outBitmapIndexScan(str, obj); break; case T_BitmapHeapScan: _outBitmapHeapScan(str, obj); break; case T_TidScan: _outTidScan(str, obj); break; case T_SubqueryScan: _outSubqueryScan(str, obj); break; case T_FunctionScan: _outFunctionScan(str, obj); break; case T_ValuesScan: _outValuesScan(str, obj); break; case T_CteScan: _outCteScan(str, obj); break; case T_WorkTableScan: _outWorkTableScan(str, obj); break; case T_ForeignScan: _outForeignScan(str, obj); break; case T_Join: _outJoin(str, obj); break; case T_NestLoop: _outNestLoop(str, obj); break; case T_MergeJoin: _outMergeJoin(str, obj); break; case T_HashJoin: _outHashJoin(str, obj); break; case T_Agg: _outAgg(str, obj); break; case T_WindowAgg: _outWindowAgg(str, obj); break; case T_Group: _outGroup(str, obj); break; case T_Material: _outMaterial(str, obj); break; case T_Sort: _outSort(str, obj); break; case T_Unique: _outUnique(str, obj); break; case T_Hash: _outHash(str, obj); break; case T_SetOp: _outSetOp(str, obj); break; case T_LockRows: _outLockRows(str, obj); break; case T_Limit: _outLimit(str, obj); break; case T_NestLoopParam: _outNestLoopParam(str, obj); break; case T_PlanRowMark: _outPlanRowMark(str, obj); break; case T_PlanInvalItem: _outPlanInvalItem(str, obj); break; case T_Alias: _outAlias(str, obj); break; case T_RangeVar: _outRangeVar(str, obj); break; case T_IntoClause: _outIntoClause(str, obj); break; case T_Var: _outVar(str, obj); break; case T_Const: _outConst(str, obj); break; case T_Param: _outParam(str, obj); break; case T_Aggref: _outAggref(str, obj); break; case T_WindowFunc: _outWindowFunc(str, obj); break; case T_ArrayRef: _outArrayRef(str, obj); break; case T_FuncExpr: _outFuncExpr(str, obj); break; case T_NamedArgExpr: _outNamedArgExpr(str, obj); break; case T_OpExpr: _outOpExpr(str, obj); break; case T_DistinctExpr: _outDistinctExpr(str, obj); break; case T_NullIfExpr: _outNullIfExpr(str, obj); break; case T_ScalarArrayOpExpr: _outScalarArrayOpExpr(str, obj); break; case T_BoolExpr: _outBoolExpr(str, obj); break; case T_SubLink: _outSubLink(str, obj); break; case T_SubPlan: _outSubPlan(str, obj); break; case T_AlternativeSubPlan: _outAlternativeSubPlan(str, obj); break; case T_FieldSelect: _outFieldSelect(str, obj); break; case T_FieldStore: _outFieldStore(str, obj); break; case T_RelabelType: _outRelabelType(str, obj); break; case T_CoerceViaIO: _outCoerceViaIO(str, obj); break; case T_ArrayCoerceExpr: _outArrayCoerceExpr(str, obj); break; case T_ConvertRowtypeExpr: _outConvertRowtypeExpr(str, obj); break; case T_CollateExpr: _outCollateExpr(str, obj); break; case T_CaseExpr: _outCaseExpr(str, obj); break; case T_CaseWhen: _outCaseWhen(str, obj); break; case T_CaseTestExpr: _outCaseTestExpr(str, obj); break; case T_ArrayExpr: _outArrayExpr(str, obj); break; case T_RowExpr: _outRowExpr(str, obj); break; case T_RowCompareExpr: _outRowCompareExpr(str, obj); break; case T_CoalesceExpr: _outCoalesceExpr(str, obj); break; case T_MinMaxExpr: _outMinMaxExpr(str, obj); break; case T_XmlExpr: _outXmlExpr(str, obj); break; case T_NullTest: _outNullTest(str, obj); break; case T_BooleanTest: _outBooleanTest(str, obj); break; case T_CoerceToDomain: _outCoerceToDomain(str, obj); break; case T_CoerceToDomainValue: _outCoerceToDomainValue(str, obj); break; case T_SetToDefault: _outSetToDefault(str, obj); break; case T_CurrentOfExpr: _outCurrentOfExpr(str, obj); break; case T_TargetEntry: _outTargetEntry(str, obj); break; case T_RangeTblRef: _outRangeTblRef(str, obj); break; case T_JoinExpr: _outJoinExpr(str, obj); break; case T_FromExpr: _outFromExpr(str, obj); break; case T_Path: _outPath(str, obj); break; case T_IndexPath: _outIndexPath(str, obj); break; case T_BitmapHeapPath: _outBitmapHeapPath(str, obj); break; case T_BitmapAndPath: _outBitmapAndPath(str, obj); break; case T_BitmapOrPath: _outBitmapOrPath(str, obj); break; case T_TidPath: _outTidPath(str, obj); break; case T_ForeignPath: _outForeignPath(str, obj); break; case T_AppendPath: _outAppendPath(str, obj); break; case T_MergeAppendPath: _outMergeAppendPath(str, obj); break; case T_ResultPath: _outResultPath(str, obj); break; case T_MaterialPath: _outMaterialPath(str, obj); break; case T_UniquePath: _outUniquePath(str, obj); break; case T_NestPath: _outNestPath(str, obj); break; case T_MergePath: _outMergePath(str, obj); break; case T_HashPath: _outHashPath(str, obj); break; case T_PlannerGlobal: _outPlannerGlobal(str, obj); break; case T_PlannerInfo: _outPlannerInfo(str, obj); break; case T_RelOptInfo: _outRelOptInfo(str, obj); break; case T_IndexOptInfo: _outIndexOptInfo(str, obj); break; case T_EquivalenceClass: _outEquivalenceClass(str, obj); break; case T_EquivalenceMember: _outEquivalenceMember(str, obj); break; case T_PathKey: _outPathKey(str, obj); break; case T_ParamPathInfo: _outParamPathInfo(str, obj); break; case T_RestrictInfo: _outRestrictInfo(str, obj); break; case T_PlaceHolderVar: _outPlaceHolderVar(str, obj); break; case T_SpecialJoinInfo: _outSpecialJoinInfo(str, obj); break; case T_LateralJoinInfo: _outLateralJoinInfo(str, obj); break; case T_AppendRelInfo: _outAppendRelInfo(str, obj); break; case T_PlaceHolderInfo: _outPlaceHolderInfo(str, obj); break; case T_MinMaxAggInfo: _outMinMaxAggInfo(str, obj); break; case T_PlannerParamItem: _outPlannerParamItem(str, obj); break; case T_CreateStmt: _outCreateStmt(str, obj); break; case T_CreateForeignTableStmt: _outCreateForeignTableStmt(str, obj); break; case T_IndexStmt: _outIndexStmt(str, obj); break; case T_NotifyStmt: _outNotifyStmt(str, obj); break; case T_DeclareCursorStmt: _outDeclareCursorStmt(str, obj); break; case T_SelectStmt: _outSelectStmt(str, obj); break; case T_ColumnDef: _outColumnDef(str, obj); break; case T_TypeName: _outTypeName(str, obj); break; case T_TypeCast: _outTypeCast(str, obj); break; case T_CollateClause: _outCollateClause(str, obj); break; case T_IndexElem: _outIndexElem(str, obj); break; case T_Query: _outQuery(str, obj); break; case T_SortGroupClause: _outSortGroupClause(str, obj); break; case T_WindowClause: _outWindowClause(str, obj); break; case T_RowMarkClause: _outRowMarkClause(str, obj); break; case T_WithClause: _outWithClause(str, obj); break; case T_CommonTableExpr: _outCommonTableExpr(str, obj); break; case T_SetOperationStmt: _outSetOperationStmt(str, obj); break; case T_RangeTblEntry: _outRangeTblEntry(str, obj); break; case T_A_Expr: _outAExpr(str, obj); break; case T_ColumnRef: _outColumnRef(str, obj); break; case T_ParamRef: _outParamRef(str, obj); break; case T_A_Const: _outAConst(str, obj); break; case T_A_Star: _outA_Star(str, obj); break; case T_A_Indices: _outA_Indices(str, obj); break; case T_A_Indirection: _outA_Indirection(str, obj); break; case T_A_ArrayExpr: _outA_ArrayExpr(str, obj); break; case T_ResTarget: _outResTarget(str, obj); break; case T_SortBy: _outSortBy(str, obj); break; case T_WindowDef: _outWindowDef(str, obj); break; case T_RangeSubselect: _outRangeSubselect(str, obj); break; case T_RangeFunction: _outRangeFunction(str, obj); break; case T_Constraint: _outConstraint(str, obj); break; case T_FuncCall: _outFuncCall(str, obj); break; case T_DefElem: _outDefElem(str, obj); break; case T_TableLikeClause: _outTableLikeClause(str, obj); break; case T_LockingClause: _outLockingClause(str, obj); break; case T_XmlSerialize: _outXmlSerialize(str, obj); break; default: /* * This should be an ERROR, but it's too useful to be able to * dump structures that _outNode only understands part of. */ elog(WARNING, "could not dump unrecognized node type: %d", (int) nodeTag(obj)); break; } appendStringInfoChar(str, '}'); } }
static void _outNotifyStmt | ( | StringInfo | str, | |
const NotifyStmt * | node | |||
) | [static] |
Definition at line 2032 of file outfuncs.c.
References WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("NOTIFY"); WRITE_STRING_FIELD(conditionname); WRITE_STRING_FIELD(payload); }
static void _outNullIfExpr | ( | StringInfo | str, | |
const NullIfExpr * | node | |||
) | [static] |
Definition at line 1055 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("NULLIFEXPR"); WRITE_OID_FIELD(opno); WRITE_OID_FIELD(opfuncid); WRITE_OID_FIELD(opresulttype); WRITE_BOOL_FIELD(opretset); WRITE_OID_FIELD(opcollid); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outNullTest | ( | StringInfo | str, | |
const NullTest * | node | |||
) | [static] |
Definition at line 1347 of file outfuncs.c.
References arg, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("NULLTEST"); WRITE_NODE_FIELD(arg); WRITE_ENUM_FIELD(nulltesttype, NullTestType); WRITE_BOOL_FIELD(argisrow); }
static void _outOpExpr | ( | StringInfo | str, | |
const OpExpr * | node | |||
) | [static] |
Definition at line 1025 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("OPEXPR"); WRITE_OID_FIELD(opno); WRITE_OID_FIELD(opfuncid); WRITE_OID_FIELD(opresulttype); WRITE_BOOL_FIELD(opretset); WRITE_OID_FIELD(opcollid); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outParam | ( | StringInfo | str, | |
const Param * | node | |||
) | [static] |
Definition at line 937 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PARAM"); WRITE_ENUM_FIELD(paramkind, ParamKind); WRITE_INT_FIELD(paramid); WRITE_OID_FIELD(paramtype); WRITE_INT_FIELD(paramtypmod); WRITE_OID_FIELD(paramcollid); WRITE_LOCATION_FIELD(location); }
static void _outParamPathInfo | ( | StringInfo | str, | |
const ParamPathInfo * | node | |||
) | [static] |
Definition at line 1842 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PARAMPATHINFO"); WRITE_BITMAPSET_FIELD(ppi_req_outer); WRITE_FLOAT_FIELD(ppi_rows, "%.0f"); WRITE_NODE_FIELD(ppi_clauses); }
static void _outParamRef | ( | StringInfo | str, | |
const ParamRef * | node | |||
) | [static] |
Definition at line 2498 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PARAMREF"); WRITE_INT_FIELD(number); WRITE_LOCATION_FIELD(location); }
static void _outPath | ( | StringInfo | str, | |
const Path * | node | |||
) | [static] |
Definition at line 1503 of file outfuncs.c.
References _outPathInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PATH"); _outPathInfo(str, (const Path *) node); }
static void _outPathInfo | ( | StringInfo | str, | |
const Path * | node | |||
) | [static] |
Definition at line 1472 of file outfuncs.c.
References _outBitmapset(), appendStringInfo(), NULL, Path::param_info, Path::parent, ParamPathInfo::ppi_req_outer, RelOptInfo::relids, WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, and WRITE_NODE_FIELD.
Referenced by _outAppendPath(), _outBitmapAndPath(), _outBitmapHeapPath(), _outBitmapOrPath(), _outForeignPath(), _outIndexPath(), _outJoinPathInfo(), _outMaterialPath(), _outMergeAppendPath(), _outPath(), _outResultPath(), _outTidPath(), and _outUniquePath().
{ WRITE_ENUM_FIELD(pathtype, NodeTag); appendStringInfo(str, " :parent_relids "); _outBitmapset(str, node->parent->relids); appendStringInfo(str, " :required_outer "); if (node->param_info) _outBitmapset(str, node->param_info->ppi_req_outer); else _outBitmapset(str, NULL); WRITE_FLOAT_FIELD(rows, "%.0f"); WRITE_FLOAT_FIELD(startup_cost, "%.2f"); WRITE_FLOAT_FIELD(total_cost, "%.2f"); WRITE_NODE_FIELD(pathkeys); }
static void _outPathKey | ( | StringInfo | str, | |
const PathKey * | node | |||
) | [static] |
Definition at line 1831 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PATHKEY"); WRITE_NODE_FIELD(pk_eclass); WRITE_OID_FIELD(pk_opfamily); WRITE_INT_FIELD(pk_strategy); WRITE_BOOL_FIELD(pk_nulls_first); }
static void _outPlaceHolderInfo | ( | StringInfo | str, | |
const PlaceHolderInfo * | node | |||
) | [static] |
Definition at line 1930 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLACEHOLDERINFO"); WRITE_UINT_FIELD(phid); WRITE_NODE_FIELD(ph_var); WRITE_BITMAPSET_FIELD(ph_eval_at); WRITE_BITMAPSET_FIELD(ph_needed); WRITE_BITMAPSET_FIELD(ph_may_need); WRITE_INT_FIELD(ph_width); }
static void _outPlaceHolderVar | ( | StringInfo | str, | |
const PlaceHolderVar * | node | |||
) | [static] |
Definition at line 1882 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLACEHOLDERVAR"); WRITE_NODE_FIELD(phexpr); WRITE_BITMAPSET_FIELD(phrels); WRITE_UINT_FIELD(phid); WRITE_UINT_FIELD(phlevelsup); }
static void _outPlan | ( | StringInfo | str, | |
const Plan * | node | |||
) | [static] |
Definition at line 306 of file outfuncs.c.
References _outPlanInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLAN"); _outPlanInfo(str, (const Plan *) node); }
static void _outPlanInfo | ( | StringInfo | str, | |
const Plan * | node | |||
) | [static] |
Definition at line 266 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, and WRITE_NODE_FIELD.
Referenced by _outAgg(), _outAppend(), _outBitmapAnd(), _outBitmapOr(), _outGroup(), _outHash(), _outJoinPlanInfo(), _outLimit(), _outLockRows(), _outMaterial(), _outMergeAppend(), _outModifyTable(), _outPlan(), _outRecursiveUnion(), _outResult(), _outScanInfo(), _outSetOp(), _outSort(), _outUnique(), and _outWindowAgg().
{ WRITE_FLOAT_FIELD(startup_cost, "%.2f"); WRITE_FLOAT_FIELD(total_cost, "%.2f"); WRITE_FLOAT_FIELD(plan_rows, "%.0f"); WRITE_INT_FIELD(plan_width); WRITE_NODE_FIELD(targetlist); WRITE_NODE_FIELD(qual); WRITE_NODE_FIELD(lefttree); WRITE_NODE_FIELD(righttree); WRITE_NODE_FIELD(initPlan); WRITE_BITMAPSET_FIELD(extParam); WRITE_BITMAPSET_FIELD(allParam); }
static void _outPlanInvalItem | ( | StringInfo | str, | |
const PlanInvalItem * | node | |||
) | [static] |
Definition at line 846 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLANINVALITEM"); WRITE_INT_FIELD(cacheId); WRITE_UINT_FIELD(hashValue); }
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_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLANNEDSTMT"); WRITE_ENUM_FIELD(commandType, CmdType); WRITE_UINT_FIELD(queryId); WRITE_BOOL_FIELD(hasReturning); WRITE_BOOL_FIELD(hasModifyingCTE); WRITE_BOOL_FIELD(canSetTag); WRITE_BOOL_FIELD(transientPlan); WRITE_NODE_FIELD(planTree); WRITE_NODE_FIELD(rtable); WRITE_NODE_FIELD(resultRelations); WRITE_NODE_FIELD(utilityStmt); WRITE_NODE_FIELD(subplans); WRITE_BITMAPSET_FIELD(rewindPlanIDs); WRITE_NODE_FIELD(rowMarks); WRITE_NODE_FIELD(relationOids); WRITE_NODE_FIELD(invalItems); WRITE_INT_FIELD(nParamExec); }
static void _outPlannerGlobal | ( | StringInfo | str, | |
const PlannerGlobal * | node | |||
) | [static] |
Definition at line 1667 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLANNERGLOBAL"); /* NB: this isn't a complete set of fields */ WRITE_NODE_FIELD(subplans); WRITE_BITMAPSET_FIELD(rewindPlanIDs); WRITE_NODE_FIELD(finalrtable); WRITE_NODE_FIELD(finalrowmarks); WRITE_NODE_FIELD(resultRelations); WRITE_NODE_FIELD(relationOids); WRITE_NODE_FIELD(invalItems); WRITE_INT_FIELD(nParamExec); WRITE_UINT_FIELD(lastPHId); WRITE_UINT_FIELD(lastRowMarkId); WRITE_BOOL_FIELD(transientPlan); }
static void _outPlannerInfo | ( | StringInfo | str, | |
const PlannerInfo * | node | |||
) | [static] |
Definition at line 1686 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().
{ WRITE_NODE_TYPE("PLANNERINFO"); /* NB: this isn't a complete set of fields */ WRITE_NODE_FIELD(parse); WRITE_NODE_FIELD(glob); WRITE_UINT_FIELD(query_level); WRITE_NODE_FIELD(plan_params); WRITE_BITMAPSET_FIELD(all_baserels); WRITE_NODE_FIELD(join_rel_list); WRITE_INT_FIELD(join_cur_level); WRITE_NODE_FIELD(init_plans); WRITE_NODE_FIELD(cte_plan_ids); WRITE_NODE_FIELD(eq_classes); WRITE_NODE_FIELD(canon_pathkeys); WRITE_NODE_FIELD(left_join_clauses); WRITE_NODE_FIELD(right_join_clauses); WRITE_NODE_FIELD(full_join_clauses); WRITE_NODE_FIELD(join_info_list); WRITE_NODE_FIELD(lateral_info_list); WRITE_NODE_FIELD(append_rel_list); WRITE_NODE_FIELD(rowMarks); WRITE_NODE_FIELD(placeholder_list); WRITE_NODE_FIELD(query_pathkeys); WRITE_NODE_FIELD(group_pathkeys); WRITE_NODE_FIELD(window_pathkeys); WRITE_NODE_FIELD(distinct_pathkeys); WRITE_NODE_FIELD(sort_pathkeys); WRITE_NODE_FIELD(minmax_aggs); WRITE_FLOAT_FIELD(total_table_pages, "%.0f"); WRITE_FLOAT_FIELD(tuple_fraction, "%.4f"); WRITE_FLOAT_FIELD(limit_tuples, "%.0f"); WRITE_BOOL_FIELD(hasInheritedTarget); WRITE_BOOL_FIELD(hasJoinRTEs); WRITE_BOOL_FIELD(hasLateralRTEs); WRITE_BOOL_FIELD(hasHavingQual); WRITE_BOOL_FIELD(hasPseudoConstantQuals); WRITE_BOOL_FIELD(hasRecursion); WRITE_INT_FIELD(wt_param_id); WRITE_BITMAPSET_FIELD(curOuterRels); WRITE_NODE_FIELD(curOuterParams); }
static void _outPlannerParamItem | ( | StringInfo | str, | |
const PlannerParamItem * | node | |||
) | [static] |
Definition at line 1957 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLANNERPARAMITEM"); WRITE_NODE_FIELD(item); WRITE_INT_FIELD(paramId); }
static void _outPlanRowMark | ( | StringInfo | str, | |
const PlanRowMark * | node | |||
) | [static] |
Definition at line 833 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("PLANROWMARK"); WRITE_UINT_FIELD(rti); WRITE_UINT_FIELD(prti); WRITE_UINT_FIELD(rowmarkId); WRITE_ENUM_FIELD(markType, RowMarkType); WRITE_BOOL_FIELD(noWait); WRITE_BOOL_FIELD(isParent); }
static void _outQuery | ( | StringInfo | str, | |
const Query * | node | |||
) | [static] |
Definition at line 2201 of file outfuncs.c.
References appendStringInfo(), nodeTag, T_CreateStmt, T_DeclareCursorStmt, T_IndexStmt, T_NotifyStmt, Query::utilityStmt, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("QUERY"); WRITE_ENUM_FIELD(commandType, CmdType); WRITE_ENUM_FIELD(querySource, QuerySource); /* we intentionally do not print the queryId field */ WRITE_BOOL_FIELD(canSetTag); /* * Hack to work around missing outfuncs routines for a lot of the * utility-statement node types. (The only one we actually *need* for * rules support is NotifyStmt.) Someday we ought to support 'em all, but * for the meantime do this to avoid getting lots of warnings when running * with debug_print_parse on. */ if (node->utilityStmt) { switch (nodeTag(node->utilityStmt)) { case T_CreateStmt: case T_IndexStmt: case T_NotifyStmt: case T_DeclareCursorStmt: WRITE_NODE_FIELD(utilityStmt); break; default: appendStringInfo(str, " :utilityStmt ?"); break; } } else appendStringInfo(str, " :utilityStmt <>"); WRITE_INT_FIELD(resultRelation); WRITE_BOOL_FIELD(hasAggs); WRITE_BOOL_FIELD(hasWindowFuncs); WRITE_BOOL_FIELD(hasSubLinks); WRITE_BOOL_FIELD(hasDistinctOn); WRITE_BOOL_FIELD(hasRecursive); WRITE_BOOL_FIELD(hasModifyingCTE); WRITE_BOOL_FIELD(hasForUpdate); WRITE_NODE_FIELD(cteList); WRITE_NODE_FIELD(rtable); WRITE_NODE_FIELD(jointree); WRITE_NODE_FIELD(targetList); WRITE_NODE_FIELD(returningList); WRITE_NODE_FIELD(groupClause); WRITE_NODE_FIELD(havingQual); WRITE_NODE_FIELD(windowClause); WRITE_NODE_FIELD(distinctClause); WRITE_NODE_FIELD(sortClause); WRITE_NODE_FIELD(limitOffset); WRITE_NODE_FIELD(limitCount); WRITE_NODE_FIELD(rowMarks); WRITE_NODE_FIELD(setOperations); WRITE_NODE_FIELD(constraintDeps); }
static void _outRangeFunction | ( | StringInfo | str, | |
const RangeFunction * | node | |||
) | [static] |
Definition at line 2598 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RANGEFUNCTION"); WRITE_BOOL_FIELD(lateral); WRITE_NODE_FIELD(funccallnode); WRITE_NODE_FIELD(alias); WRITE_NODE_FIELD(coldeflist); }
static void _outRangeSubselect | ( | StringInfo | str, | |
const RangeSubselect * | node | |||
) | [static] |
Definition at line 2588 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RANGESUBSELECT"); WRITE_BOOL_FIELD(lateral); WRITE_NODE_FIELD(subquery); WRITE_NODE_FIELD(alias); }
static void _outRangeTblEntry | ( | StringInfo | str, | |
const RangeTblEntry * | node | |||
) | [static] |
Definition at line 2342 of file outfuncs.c.
References elog, ERROR, RTE_CTE, RTE_FUNCTION, RTE_JOIN, RTE_RELATION, RTE_SUBQUERY, RTE_VALUES, RangeTblEntry::rtekind, WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_CHAR_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RTE"); /* put alias + eref first to make dump more legible */ WRITE_NODE_FIELD(alias); WRITE_NODE_FIELD(eref); WRITE_ENUM_FIELD(rtekind, RTEKind); switch (node->rtekind) { case RTE_RELATION: WRITE_OID_FIELD(relid); WRITE_CHAR_FIELD(relkind); break; case RTE_SUBQUERY: WRITE_NODE_FIELD(subquery); WRITE_BOOL_FIELD(security_barrier); break; case RTE_JOIN: WRITE_ENUM_FIELD(jointype, JoinType); WRITE_NODE_FIELD(joinaliasvars); break; case RTE_FUNCTION: WRITE_NODE_FIELD(funcexpr); WRITE_NODE_FIELD(funccoltypes); WRITE_NODE_FIELD(funccoltypmods); WRITE_NODE_FIELD(funccolcollations); break; case RTE_VALUES: WRITE_NODE_FIELD(values_lists); WRITE_NODE_FIELD(values_collations); break; case RTE_CTE: WRITE_STRING_FIELD(ctename); WRITE_UINT_FIELD(ctelevelsup); WRITE_BOOL_FIELD(self_reference); WRITE_NODE_FIELD(ctecoltypes); WRITE_NODE_FIELD(ctecoltypmods); WRITE_NODE_FIELD(ctecolcollations); break; default: elog(ERROR, "unrecognized RTE kind: %d", (int) node->rtekind); break; } WRITE_BOOL_FIELD(lateral); WRITE_BOOL_FIELD(inh); WRITE_BOOL_FIELD(inFromCl); WRITE_UINT_FIELD(requiredPerms); WRITE_OID_FIELD(checkAsUser); WRITE_BITMAPSET_FIELD(selectedCols); WRITE_BITMAPSET_FIELD(modifiedCols); }
static void _outRangeTblRef | ( | StringInfo | str, | |
const RangeTblRef * | node | |||
) | [static] |
Definition at line 1425 of file outfuncs.c.
References WRITE_INT_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RANGETBLREF"); WRITE_INT_FIELD(rtindex); }
static void _outRangeVar | ( | StringInfo | str, | |
const RangeVar * | node | |||
) | [static] |
Definition at line 870 of file outfuncs.c.
References WRITE_CHAR_FIELD, WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RANGEVAR"); /* * we deliberately ignore catalogname here, since it is presently not * semantically meaningful */ WRITE_STRING_FIELD(schemaname); WRITE_STRING_FIELD(relname); WRITE_ENUM_FIELD(inhOpt, InhOption); WRITE_CHAR_FIELD(relpersistence); WRITE_NODE_FIELD(alias); WRITE_LOCATION_FIELD(location); }
static void _outRecursiveUnion | ( | StringInfo | str, | |
const RecursiveUnion * | node | |||
) | [static] |
Definition at line 382 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), i, WRITE_INT_FIELD, WRITE_LONG_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("RECURSIVEUNION"); _outPlanInfo(str, (const Plan *) node); WRITE_INT_FIELD(wtParam); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :dupColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->dupColIdx[i]); appendStringInfo(str, " :dupOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->dupOperators[i]); WRITE_LONG_FIELD(numGroups); }
static void _outRelabelType | ( | StringInfo | str, | |
const RelabelType * | node | |||
) | [static] |
Definition at line 1175 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().
{ WRITE_NODE_TYPE("RELABELTYPE"); WRITE_NODE_FIELD(arg); WRITE_OID_FIELD(resulttype); WRITE_INT_FIELD(resulttypmod); WRITE_OID_FIELD(resultcollid); WRITE_ENUM_FIELD(relabelformat, CoercionForm); WRITE_LOCATION_FIELD(location); }
static void _outRelOptInfo | ( | StringInfo | str, | |
const RelOptInfo * | node | |||
) | [static] |
Definition at line 1731 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RELOPTINFO"); /* NB: this isn't a complete set of fields */ WRITE_ENUM_FIELD(reloptkind, RelOptKind); WRITE_BITMAPSET_FIELD(relids); WRITE_FLOAT_FIELD(rows, "%.0f"); WRITE_INT_FIELD(width); WRITE_BOOL_FIELD(consider_startup); WRITE_NODE_FIELD(reltargetlist); WRITE_NODE_FIELD(pathlist); WRITE_NODE_FIELD(ppilist); WRITE_NODE_FIELD(cheapest_startup_path); WRITE_NODE_FIELD(cheapest_total_path); WRITE_NODE_FIELD(cheapest_unique_path); WRITE_NODE_FIELD(cheapest_parameterized_paths); WRITE_UINT_FIELD(relid); WRITE_UINT_FIELD(reltablespace); WRITE_ENUM_FIELD(rtekind, RTEKind); WRITE_INT_FIELD(min_attr); WRITE_INT_FIELD(max_attr); WRITE_NODE_FIELD(lateral_vars); WRITE_BITMAPSET_FIELD(lateral_relids); WRITE_NODE_FIELD(indexlist); WRITE_UINT_FIELD(pages); WRITE_FLOAT_FIELD(tuples, "%.0f"); WRITE_FLOAT_FIELD(allvisfrac, "%.6f"); WRITE_NODE_FIELD(subplan); WRITE_NODE_FIELD(subroot); WRITE_NODE_FIELD(subplan_params); /* we don't try to print fdwroutine or fdw_private */ WRITE_NODE_FIELD(baserestrictinfo); WRITE_NODE_FIELD(joininfo); WRITE_BOOL_FIELD(has_eclass_joins); }
static void _outResTarget | ( | StringInfo | str, | |
const ResTarget * | node | |||
) | [static] |
Definition at line 2550 of file outfuncs.c.
References name, val, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RESTARGET"); WRITE_STRING_FIELD(name); WRITE_NODE_FIELD(indirection); WRITE_NODE_FIELD(val); WRITE_LOCATION_FIELD(location); }
static void _outRestrictInfo | ( | StringInfo | str, | |
const RestrictInfo * | node | |||
) | [static] |
Definition at line 1852 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_FLOAT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RESTRICTINFO"); /* NB: this isn't a complete set of fields */ WRITE_NODE_FIELD(clause); WRITE_BOOL_FIELD(is_pushed_down); WRITE_BOOL_FIELD(outerjoin_delayed); WRITE_BOOL_FIELD(can_join); WRITE_BOOL_FIELD(pseudoconstant); WRITE_BITMAPSET_FIELD(clause_relids); WRITE_BITMAPSET_FIELD(required_relids); WRITE_BITMAPSET_FIELD(outer_relids); WRITE_BITMAPSET_FIELD(nullable_relids); WRITE_BITMAPSET_FIELD(left_relids); WRITE_BITMAPSET_FIELD(right_relids); WRITE_NODE_FIELD(orclause); /* don't write parent_ec, leads to infinite recursion in plan tree dump */ WRITE_FLOAT_FIELD(norm_selec, "%.4f"); WRITE_FLOAT_FIELD(outer_selec, "%.4f"); WRITE_NODE_FIELD(mergeopfamilies); /* don't write left_ec, leads to infinite recursion in plan tree dump */ /* don't write right_ec, leads to infinite recursion in plan tree dump */ WRITE_NODE_FIELD(left_em); WRITE_NODE_FIELD(right_em); WRITE_BOOL_FIELD(outer_is_left); WRITE_OID_FIELD(hashjoinoperator); }
static void _outResult | ( | StringInfo | str, | |
const Result * | node | |||
) | [static] |
Definition at line 314 of file outfuncs.c.
References _outPlanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RESULT"); _outPlanInfo(str, (const Plan *) node); WRITE_NODE_FIELD(resconstantqual); }
static void _outResultPath | ( | StringInfo | str, | |
const ResultPath * | node | |||
) | [static] |
Definition at line 1602 of file outfuncs.c.
References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("RESULTPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(quals); }
static void _outRowCompareExpr | ( | StringInfo | str, | |
const RowCompareExpr * | node | |||
) | [static] |
Definition at line 1294 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ROWCOMPARE"); WRITE_ENUM_FIELD(rctype, RowCompareType); WRITE_NODE_FIELD(opnos); WRITE_NODE_FIELD(opfamilies); WRITE_NODE_FIELD(inputcollids); WRITE_NODE_FIELD(largs); WRITE_NODE_FIELD(rargs); }
static void _outRowExpr | ( | StringInfo | str, | |
const RowExpr * | node | |||
) | [static] |
Definition at line 1282 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ROW"); WRITE_NODE_FIELD(args); WRITE_OID_FIELD(row_typeid); WRITE_ENUM_FIELD(row_format, CoercionForm); WRITE_NODE_FIELD(colnames); WRITE_LOCATION_FIELD(location); }
static void _outRowMarkClause | ( | StringInfo | str, | |
const RowMarkClause * | node | |||
) | [static] |
Definition at line 2289 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("ROWMARKCLAUSE"); WRITE_UINT_FIELD(rti); WRITE_ENUM_FIELD(strength, LockClauseStrength); WRITE_BOOL_FIELD(noWait); WRITE_BOOL_FIELD(pushedDown); }
static void _outScalarArrayOpExpr | ( | StringInfo | str, | |
const ScalarArrayOpExpr * | node | |||
) | [static] |
Definition at line 1070 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SCALARARRAYOPEXPR"); WRITE_OID_FIELD(opno); WRITE_OID_FIELD(opfuncid); WRITE_BOOL_FIELD(useOr); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_LOCATION_FIELD(location); }
static void _outScan | ( | StringInfo | str, | |
const Scan * | node | |||
) | [static] |
Definition at line 425 of file outfuncs.c.
References _outScanInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SCAN"); _outScanInfo(str, node); }
static void _outScanInfo | ( | StringInfo | str, | |
const Scan * | node | |||
) | [static] |
Definition at line 285 of file outfuncs.c.
References _outPlanInfo(), and WRITE_UINT_FIELD.
Referenced by _outBitmapHeapScan(), _outBitmapIndexScan(), _outCteScan(), _outForeignScan(), _outFunctionScan(), _outIndexOnlyScan(), _outIndexScan(), _outScan(), _outSeqScan(), _outSubqueryScan(), _outTidScan(), _outValuesScan(), and _outWorkTableScan().
{ _outPlanInfo(str, (const Plan *) node); WRITE_UINT_FIELD(scanrelid); }
static void _outSelectStmt | ( | StringInfo | str, | |
const SelectStmt * | node | |||
) | [static] |
Definition at line 2051 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SELECT"); WRITE_NODE_FIELD(distinctClause); WRITE_NODE_FIELD(intoClause); WRITE_NODE_FIELD(targetList); WRITE_NODE_FIELD(fromClause); WRITE_NODE_FIELD(whereClause); WRITE_NODE_FIELD(groupClause); WRITE_NODE_FIELD(havingClause); WRITE_NODE_FIELD(windowClause); WRITE_NODE_FIELD(valuesLists); WRITE_NODE_FIELD(sortClause); WRITE_NODE_FIELD(limitOffset); WRITE_NODE_FIELD(limitCount); WRITE_NODE_FIELD(lockingClause); WRITE_NODE_FIELD(withClause); WRITE_ENUM_FIELD(op, SetOperation); WRITE_BOOL_FIELD(all); WRITE_NODE_FIELD(larg); WRITE_NODE_FIELD(rarg); }
static void _outSeqScan | ( | StringInfo | str, | |
const SeqScan * | node | |||
) | [static] |
Definition at line 433 of file outfuncs.c.
References _outScanInfo(), and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SEQSCAN"); _outScanInfo(str, (const Scan *) node); }
static void _outSetOp | ( | StringInfo | str, | |
const SetOp * | node | |||
) | [static] |
Definition at line 776 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), i, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LONG_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("SETOP"); _outPlanInfo(str, (const Plan *) node); WRITE_ENUM_FIELD(cmd, SetOpCmd); WRITE_ENUM_FIELD(strategy, SetOpStrategy); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :dupColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->dupColIdx[i]); appendStringInfo(str, " :dupOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->dupOperators[i]); WRITE_INT_FIELD(flagColIdx); WRITE_INT_FIELD(firstFlag); WRITE_LONG_FIELD(numGroups); }
static void _outSetOperationStmt | ( | StringInfo | str, | |
const SetOperationStmt * | node | |||
) | [static] |
Definition at line 2327 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SETOPERATIONSTMT"); WRITE_ENUM_FIELD(op, SetOperation); WRITE_BOOL_FIELD(all); WRITE_NODE_FIELD(larg); WRITE_NODE_FIELD(rarg); WRITE_NODE_FIELD(colTypes); WRITE_NODE_FIELD(colTypmods); WRITE_NODE_FIELD(colCollations); WRITE_NODE_FIELD(groupClauses); }
static void _outSetToDefault | ( | StringInfo | str, | |
const SetToDefault * | node | |||
) | [static] |
Definition at line 1390 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SETTODEFAULT"); WRITE_OID_FIELD(typeId); WRITE_INT_FIELD(typeMod); WRITE_OID_FIELD(collation); WRITE_LOCATION_FIELD(location); }
static void _outSort | ( | StringInfo | str, | |
const Sort * | node | |||
) | [static] |
Definition at line 714 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), booltostr, i, WRITE_INT_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("SORT"); _outPlanInfo(str, (const Plan *) node); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :sortColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->sortColIdx[i]); appendStringInfo(str, " :sortOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->sortOperators[i]); appendStringInfo(str, " :collations"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->collations[i]); appendStringInfo(str, " :nullsFirst"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %s", booltostr(node->nullsFirst[i])); }
static void _outSortBy | ( | StringInfo | str, | |
const SortBy * | node | |||
) | [static] |
Definition at line 2561 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SORTBY"); WRITE_NODE_FIELD(node); WRITE_ENUM_FIELD(sortby_dir, SortByDir); WRITE_ENUM_FIELD(sortby_nulls, SortByNulls); WRITE_NODE_FIELD(useOp); WRITE_LOCATION_FIELD(location); }
static void _outSortGroupClause | ( | StringInfo | str, | |
const SortGroupClause * | node | |||
) | [static] |
Definition at line 2261 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SORTGROUPCLAUSE"); WRITE_UINT_FIELD(tleSortGroupRef); WRITE_OID_FIELD(eqop); WRITE_OID_FIELD(sortop); WRITE_BOOL_FIELD(nulls_first); WRITE_BOOL_FIELD(hashable); }
static void _outSpecialJoinInfo | ( | StringInfo | str, | |
const SpecialJoinInfo * | node | |||
) | [static] |
Definition at line 1893 of file outfuncs.c.
References WRITE_BITMAPSET_FIELD, WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SPECIALJOININFO"); WRITE_BITMAPSET_FIELD(min_lefthand); WRITE_BITMAPSET_FIELD(min_righthand); WRITE_BITMAPSET_FIELD(syn_lefthand); WRITE_BITMAPSET_FIELD(syn_righthand); WRITE_ENUM_FIELD(jointype, JoinType); WRITE_BOOL_FIELD(lhs_strict); WRITE_BOOL_FIELD(delay_upper_joins); WRITE_NODE_FIELD(join_quals); }
static void _outSubLink | ( | StringInfo | str, | |
const SubLink * | node | |||
) | [static] |
Definition at line 1110 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SUBLINK"); WRITE_ENUM_FIELD(subLinkType, SubLinkType); WRITE_NODE_FIELD(testexpr); WRITE_NODE_FIELD(operName); WRITE_NODE_FIELD(subselect); WRITE_LOCATION_FIELD(location); }
static void _outSubPlan | ( | StringInfo | str, | |
const SubPlan * | node | |||
) | [static] |
Definition at line 1122 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_ENUM_FIELD, WRITE_FLOAT_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SUBPLAN"); WRITE_ENUM_FIELD(subLinkType, SubLinkType); WRITE_NODE_FIELD(testexpr); WRITE_NODE_FIELD(paramIds); WRITE_INT_FIELD(plan_id); WRITE_STRING_FIELD(plan_name); WRITE_OID_FIELD(firstColType); WRITE_INT_FIELD(firstColTypmod); WRITE_OID_FIELD(firstColCollation); WRITE_BOOL_FIELD(useHashTable); WRITE_BOOL_FIELD(unknownEqFalse); WRITE_NODE_FIELD(setParam); WRITE_NODE_FIELD(parParam); WRITE_NODE_FIELD(args); WRITE_FLOAT_FIELD(startup_cost, "%.2f"); WRITE_FLOAT_FIELD(per_call_cost, "%.2f"); }
static void _outSubqueryScan | ( | StringInfo | str, | |
const SubqueryScan * | node | |||
) | [static] |
Definition at line 502 of file outfuncs.c.
References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("SUBQUERYSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_NODE_FIELD(subplan); }
static void _outTableLikeClause | ( | StringInfo | str, | |
const TableLikeClause * | node | |||
) | [static] |
Definition at line 2102 of file outfuncs.c.
References WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("TABLELIKECLAUSE"); WRITE_NODE_FIELD(relation); WRITE_UINT_FIELD(options); }
static void _outTargetEntry | ( | StringInfo | str, | |
const TargetEntry * | node | |||
) | [static] |
Definition at line 1411 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("TARGETENTRY"); WRITE_NODE_FIELD(expr); WRITE_INT_FIELD(resno); WRITE_STRING_FIELD(resname); WRITE_UINT_FIELD(ressortgroupref); WRITE_OID_FIELD(resorigtbl); WRITE_INT_FIELD(resorigcol); WRITE_BOOL_FIELD(resjunk); }
static void _outTidPath | ( | StringInfo | str, | |
const TidPath * | node | |||
) | [static] |
Definition at line 1561 of file outfuncs.c.
References _outPathInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("TIDPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(tidquals); }
static void _outTidScan | ( | StringInfo | str, | |
const TidScan * | node | |||
) | [static] |
Definition at line 492 of file outfuncs.c.
References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("TIDSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_NODE_FIELD(tidquals); }
static void _outToken | ( | StringInfo | str, | |
const char * | s | |||
) | [static] |
Definition at line 110 of file outfuncs.c.
References appendStringInfo(), appendStringInfoChar(), and NULL.
Referenced by _outBoolExpr(), and _outValue().
{ if (s == NULL || *s == '\0') { appendStringInfo(str, "<>"); return; } /* * Look for characters or patterns that are treated specially by read.c * (either in pg_strtok() or in nodeRead()), and therefore need a * protective backslash. */ /* These characters only need to be quoted at the start of the string */ if (*s == '<' || *s == '\"' || isdigit((unsigned char) *s) || ((*s == '+' || *s == '-') && (isdigit((unsigned char) s[1]) || s[1] == '.'))) appendStringInfoChar(str, '\\'); while (*s) { /* These chars must be backslashed anywhere in the string */ if (*s == ' ' || *s == '\n' || *s == '\t' || *s == '(' || *s == ')' || *s == '{' || *s == '}' || *s == '\\') appendStringInfoChar(str, '\\'); appendStringInfoChar(str, *s++); } }
static void _outTypeCast | ( | StringInfo | str, | |
const TypeCast * | node | |||
) | [static] |
Definition at line 2167 of file outfuncs.c.
References arg, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("TYPECAST"); WRITE_NODE_FIELD(arg); WRITE_NODE_FIELD(typeName); WRITE_LOCATION_FIELD(location); }
static void _outTypeName | ( | StringInfo | str, | |
const TypeName * | node | |||
) | [static] |
Definition at line 2152 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_OID_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("TYPENAME"); WRITE_NODE_FIELD(names); WRITE_OID_FIELD(typeOid); WRITE_BOOL_FIELD(setof); WRITE_BOOL_FIELD(pct_type); WRITE_NODE_FIELD(typmods); WRITE_INT_FIELD(typemod); WRITE_NODE_FIELD(arrayBounds); WRITE_LOCATION_FIELD(location); }
static void _outUnique | ( | StringInfo | str, | |
const Unique * | node | |||
) | [static] |
Definition at line 742 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), i, WRITE_INT_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("UNIQUE"); _outPlanInfo(str, (const Plan *) node); WRITE_INT_FIELD(numCols); appendStringInfo(str, " :uniqColIdx"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %d", node->uniqColIdx[i]); appendStringInfo(str, " :uniqOperators"); for (i = 0; i < node->numCols; i++) appendStringInfo(str, " %u", node->uniqOperators[i]); }
static void _outUniquePath | ( | StringInfo | str, | |
const UniquePath * | node | |||
) | [static] |
Definition at line 1622 of file outfuncs.c.
References _outPathInfo(), subpath(), WRITE_ENUM_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("UNIQUEPATH"); _outPathInfo(str, (const Path *) node); WRITE_NODE_FIELD(subpath); WRITE_ENUM_FIELD(umethod, UniquePathMethod); WRITE_NODE_FIELD(in_operators); WRITE_NODE_FIELD(uniq_exprs); }
static void _outValue | ( | StringInfo | str, | |
const Value * | value | |||
) | [static] |
Definition at line 2454 of file outfuncs.c.
References _outToken(), appendStringInfo(), appendStringInfoChar(), appendStringInfoString(), elog, ERROR, Value::ValUnion::ival, Value::ValUnion::str, T_BitString, T_Float, T_Integer, T_Null, T_String, Value::type, and Value::val.
Referenced by _outAConst(), and _outNode().
{ switch (value->type) { case T_Integer: appendStringInfo(str, "%ld", value->val.ival); break; case T_Float: /* * We assume the value is a valid numeric literal and so does not * need quoting. */ appendStringInfoString(str, value->val.str); break; case T_String: appendStringInfoChar(str, '"'); _outToken(str, value->val.str); appendStringInfoChar(str, '"'); break; case T_BitString: /* internal representation already has leading 'b' */ appendStringInfoString(str, value->val.str); break; case T_Null: /* this is seen only within A_Const, not in transformed trees */ appendStringInfoString(str, "NULL"); break; default: elog(ERROR, "unrecognized node type: %d", (int) value->type); break; } }
static void _outValuesScan | ( | StringInfo | str, | |
const ValuesScan * | node | |||
) | [static] |
Definition at line 526 of file outfuncs.c.
References _outScanInfo(), WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("VALUESSCAN"); _outScanInfo(str, (const Scan *) node); WRITE_NODE_FIELD(values_lists); }
static void _outVar | ( | StringInfo | str, | |
const Var * | node | |||
) | [static] |
Definition at line 901 of file outfuncs.c.
References WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("VAR"); WRITE_UINT_FIELD(varno); WRITE_INT_FIELD(varattno); WRITE_OID_FIELD(vartype); WRITE_INT_FIELD(vartypmod); WRITE_OID_FIELD(varcollid); WRITE_UINT_FIELD(varlevelsup); WRITE_UINT_FIELD(varnoold); WRITE_INT_FIELD(varoattno); WRITE_LOCATION_FIELD(location); }
static void _outWindowAgg | ( | StringInfo | str, | |
const WindowAgg * | node | |||
) | [static] |
Definition at line 651 of file outfuncs.c.
References _outPlanInfo(), appendStringInfo(), i, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ int i; WRITE_NODE_TYPE("WINDOWAGG"); _outPlanInfo(str, (const Plan *) node); WRITE_UINT_FIELD(winref); WRITE_INT_FIELD(partNumCols); appendStringInfo(str, " :partColIdx"); for (i = 0; i < node->partNumCols; i++) appendStringInfo(str, " %d", node->partColIdx[i]); appendStringInfo(str, " :partOperations"); for (i = 0; i < node->partNumCols; i++) appendStringInfo(str, " %u", node->partOperators[i]); WRITE_INT_FIELD(ordNumCols); appendStringInfo(str, " :ordColIdx"); for (i = 0; i < node->ordNumCols; i++) appendStringInfo(str, " %d", node->ordColIdx[i]); appendStringInfo(str, " :ordOperations"); for (i = 0; i < node->ordNumCols; i++) appendStringInfo(str, " %u", node->ordOperators[i]); WRITE_INT_FIELD(frameOptions); WRITE_NODE_FIELD(startOffset); WRITE_NODE_FIELD(endOffset); }
static void _outWindowClause | ( | StringInfo | str, | |
const WindowClause * | node | |||
) | [static] |
Definition at line 2273 of file outfuncs.c.
References name, WRITE_BOOL_FIELD, WRITE_INT_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_STRING_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("WINDOWCLAUSE"); WRITE_STRING_FIELD(name); WRITE_STRING_FIELD(refname); WRITE_NODE_FIELD(partitionClause); WRITE_NODE_FIELD(orderClause); WRITE_INT_FIELD(frameOptions); WRITE_NODE_FIELD(startOffset); WRITE_NODE_FIELD(endOffset); WRITE_UINT_FIELD(winref); WRITE_BOOL_FIELD(copiedOrder); }
static void _outWindowDef | ( | StringInfo | str, | |
const WindowDef * | node | |||
) | [static] |
Definition at line 2573 of file outfuncs.c.
References name, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and WRITE_STRING_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("WINDOWDEF"); WRITE_STRING_FIELD(name); WRITE_STRING_FIELD(refname); WRITE_NODE_FIELD(partitionClause); WRITE_NODE_FIELD(orderClause); WRITE_INT_FIELD(frameOptions); WRITE_NODE_FIELD(startOffset); WRITE_NODE_FIELD(endOffset); WRITE_LOCATION_FIELD(location); }
static void _outWindowFunc | ( | StringInfo | str, | |
const WindowFunc * | node | |||
) | [static] |
Definition at line 967 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, and WRITE_UINT_FIELD.
Referenced by _outNode().
{ WRITE_NODE_TYPE("WINDOWFUNC"); WRITE_OID_FIELD(winfnoid); WRITE_OID_FIELD(wintype); WRITE_OID_FIELD(wincollid); WRITE_OID_FIELD(inputcollid); WRITE_NODE_FIELD(args); WRITE_UINT_FIELD(winref); WRITE_BOOL_FIELD(winstar); WRITE_BOOL_FIELD(winagg); WRITE_LOCATION_FIELD(location); }
static void _outWithClause | ( | StringInfo | str, | |
const WithClause * | node | |||
) | [static] |
Definition at line 2300 of file outfuncs.c.
References WRITE_BOOL_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("WITHCLAUSE"); WRITE_NODE_FIELD(ctes); WRITE_BOOL_FIELD(recursive); WRITE_LOCATION_FIELD(location); }
static void _outWorkTableScan | ( | StringInfo | str, | |
const WorkTableScan * | node | |||
) | [static] |
Definition at line 547 of file outfuncs.c.
References _outScanInfo(), WRITE_INT_FIELD, and WRITE_NODE_TYPE.
Referenced by _outNode().
{ WRITE_NODE_TYPE("WORKTABLESCAN"); _outScanInfo(str, (const Scan *) node); WRITE_INT_FIELD(wtParam); }
static void _outXmlExpr | ( | StringInfo | str, | |
const XmlExpr * | node | |||
) | [static] |
Definition at line 1331 of file outfuncs.c.
References name, WRITE_ENUM_FIELD, WRITE_INT_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, WRITE_OID_FIELD, WRITE_STRING_FIELD, and xmloption.
Referenced by _outNode().
{ WRITE_NODE_TYPE("XMLEXPR"); WRITE_ENUM_FIELD(op, XmlExprOp); WRITE_STRING_FIELD(name); WRITE_NODE_FIELD(named_args); WRITE_NODE_FIELD(arg_names); WRITE_NODE_FIELD(args); WRITE_ENUM_FIELD(xmloption, XmlOptionType); WRITE_OID_FIELD(type); WRITE_INT_FIELD(typmod); WRITE_LOCATION_FIELD(location); }
static void _outXmlSerialize | ( | StringInfo | str, | |
const XmlSerialize * | node | |||
) | [static] |
Definition at line 2121 of file outfuncs.c.
References WRITE_ENUM_FIELD, WRITE_LOCATION_FIELD, WRITE_NODE_FIELD, WRITE_NODE_TYPE, and xmloption.
Referenced by _outNode().
{ WRITE_NODE_TYPE("XMLSERIALIZE"); WRITE_ENUM_FIELD(xmloption, XmlOptionType); WRITE_NODE_FIELD(expr); WRITE_NODE_FIELD(typeName); WRITE_LOCATION_FIELD(location); }
char* nodeToString | ( | const void * | obj | ) |
Definition at line 3212 of file outfuncs.c.
References _outNode(), StringInfoData::data, and initStringInfo().
Referenced by AlterDomainDefault(), CreateTrigger(), DefineDomain(), domainAddConstraint(), elog_node_display(), InsertRule(), pprint(), print(), ProcedureCreate(), StoreAttrDefault(), StoreRelCheck(), transformTableLikeClause(), and UpdateIndexRelation().
{ StringInfoData str; /* see stringinfo.h for an explanation of this maneuver */ initStringInfo(&str); _outNode(&str, obj); return str.data; }