Header And Logo

PostgreSQL
| The world's most advanced open source database.

Defines | Functions

outfuncs.c File Reference

#include "postgres.h"
#include <ctype.h>
#include "lib/stringinfo.h"
#include "nodes/plannodes.h"
#include "nodes/relation.h"
#include "utils/datum.h"
Include dependency graph for outfuncs.c:

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 Documentation

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

Definition at line 97 of file outfuncs.c.

Referenced by _outMergeAppend(), and _outSort().

#define WRITE_BITMAPSET_FIELD (   fldname  ) 
#define WRITE_BOOL_FIELD (   fldname  ) 
#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 
)
#define WRITE_FLOAT_FIELD (   fldname,
  format 
)    appendStringInfo(str, " :" CppAsString(fldname) " " format, node->fldname)
#define WRITE_INT_FIELD (   fldname  )     appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname)
#define WRITE_LOCATION_FIELD (   fldname  )     appendStringInfo(str, " :" CppAsString(fldname) " %d", node->fldname)
#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  ) 
Value:
(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)
#define WRITE_STRING_FIELD (   fldname  ) 
#define WRITE_UINT_FIELD (   fldname  )     appendStringInfo(str, " :" CppAsString(fldname) " %u", node->fldname)

Function Documentation

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

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

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

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

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

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

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

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]
static void _outXmlSerialize ( StringInfo  str,
const XmlSerialize node 
) [static]
char* nodeToString ( const void *  obj  )