📄 copyfuncs.c
字号:
COPY_NODE_FIELD(refupperindexpr); COPY_NODE_FIELD(reflowerindexpr); COPY_NODE_FIELD(refexpr); COPY_NODE_FIELD(refassgnexpr); return newnode;}/* * _copyFuncExpr */static FuncExpr *_copyFuncExpr(FuncExpr *from){ FuncExpr *newnode = makeNode(FuncExpr); COPY_SCALAR_FIELD(funcid); COPY_SCALAR_FIELD(funcresulttype); COPY_SCALAR_FIELD(funcretset); COPY_SCALAR_FIELD(funcformat); COPY_NODE_FIELD(args); return newnode;}/* * _copyOpExpr */static OpExpr *_copyOpExpr(OpExpr *from){ OpExpr *newnode = makeNode(OpExpr); COPY_SCALAR_FIELD(opno); COPY_SCALAR_FIELD(opfuncid); COPY_SCALAR_FIELD(opresulttype); COPY_SCALAR_FIELD(opretset); COPY_NODE_FIELD(args); return newnode;}/* * _copyDistinctExpr (same as OpExpr) */static DistinctExpr *_copyDistinctExpr(DistinctExpr *from){ DistinctExpr *newnode = makeNode(DistinctExpr); COPY_SCALAR_FIELD(opno); COPY_SCALAR_FIELD(opfuncid); COPY_SCALAR_FIELD(opresulttype); COPY_SCALAR_FIELD(opretset); COPY_NODE_FIELD(args); return newnode;}/* * _copyScalarArrayOpExpr */static ScalarArrayOpExpr *_copyScalarArrayOpExpr(ScalarArrayOpExpr *from){ ScalarArrayOpExpr *newnode = makeNode(ScalarArrayOpExpr); COPY_SCALAR_FIELD(opno); COPY_SCALAR_FIELD(opfuncid); COPY_SCALAR_FIELD(useOr); COPY_NODE_FIELD(args); return newnode;}/* * _copyBoolExpr */static BoolExpr *_copyBoolExpr(BoolExpr *from){ BoolExpr *newnode = makeNode(BoolExpr); COPY_SCALAR_FIELD(boolop); COPY_NODE_FIELD(args); return newnode;}/* * _copySubLink */static SubLink *_copySubLink(SubLink *from){ SubLink *newnode = makeNode(SubLink); COPY_SCALAR_FIELD(subLinkType); COPY_SCALAR_FIELD(useOr); COPY_NODE_FIELD(lefthand); COPY_NODE_FIELD(operName); COPY_OIDLIST_FIELD(operOids); COPY_NODE_FIELD(subselect); return newnode;}/* * _copySubPlan */static SubPlan *_copySubPlan(SubPlan *from){ SubPlan *newnode = makeNode(SubPlan); COPY_SCALAR_FIELD(subLinkType); COPY_SCALAR_FIELD(useOr); COPY_NODE_FIELD(exprs); COPY_INTLIST_FIELD(paramIds); COPY_NODE_FIELD(plan); COPY_SCALAR_FIELD(plan_id); COPY_NODE_FIELD(rtable); COPY_SCALAR_FIELD(useHashTable); COPY_SCALAR_FIELD(unknownEqFalse); COPY_INTLIST_FIELD(setParam); COPY_INTLIST_FIELD(parParam); COPY_NODE_FIELD(args); return newnode;}/* * _copyFieldSelect */static FieldSelect *_copyFieldSelect(FieldSelect *from){ FieldSelect *newnode = makeNode(FieldSelect); COPY_NODE_FIELD(arg); COPY_SCALAR_FIELD(fieldnum); COPY_SCALAR_FIELD(resulttype); COPY_SCALAR_FIELD(resulttypmod); return newnode;}/* * _copyRelabelType */static RelabelType *_copyRelabelType(RelabelType *from){ RelabelType *newnode = makeNode(RelabelType); COPY_NODE_FIELD(arg); COPY_SCALAR_FIELD(resulttype); COPY_SCALAR_FIELD(resulttypmod); COPY_SCALAR_FIELD(relabelformat); return newnode;}/* * _copyCaseExpr */static CaseExpr *_copyCaseExpr(CaseExpr *from){ CaseExpr *newnode = makeNode(CaseExpr); COPY_SCALAR_FIELD(casetype); COPY_NODE_FIELD(arg); COPY_NODE_FIELD(args); COPY_NODE_FIELD(defresult); return newnode;}/* * _copyCaseWhen */static CaseWhen *_copyCaseWhen(CaseWhen *from){ CaseWhen *newnode = makeNode(CaseWhen); COPY_NODE_FIELD(expr); COPY_NODE_FIELD(result); return newnode;}/* * _copyArrayExpr */static ArrayExpr *_copyArrayExpr(ArrayExpr *from){ ArrayExpr *newnode = makeNode(ArrayExpr); COPY_SCALAR_FIELD(array_typeid); COPY_SCALAR_FIELD(element_typeid); COPY_NODE_FIELD(elements); COPY_SCALAR_FIELD(multidims); return newnode;}/* * _copyCoalesceExpr */static CoalesceExpr *_copyCoalesceExpr(CoalesceExpr *from){ CoalesceExpr *newnode = makeNode(CoalesceExpr); COPY_SCALAR_FIELD(coalescetype); COPY_NODE_FIELD(args); return newnode;}/* * _copyNullIfExpr (same as OpExpr) */static NullIfExpr *_copyNullIfExpr(NullIfExpr *from){ NullIfExpr *newnode = makeNode(NullIfExpr); COPY_SCALAR_FIELD(opno); COPY_SCALAR_FIELD(opfuncid); COPY_SCALAR_FIELD(opresulttype); COPY_SCALAR_FIELD(opretset); COPY_NODE_FIELD(args); return newnode;}/* * _copyNullTest */static NullTest *_copyNullTest(NullTest *from){ NullTest *newnode = makeNode(NullTest); COPY_NODE_FIELD(arg); COPY_SCALAR_FIELD(nulltesttype); return newnode;}/* * _copyBooleanTest */static BooleanTest *_copyBooleanTest(BooleanTest *from){ BooleanTest *newnode = makeNode(BooleanTest); COPY_NODE_FIELD(arg); COPY_SCALAR_FIELD(booltesttype); return newnode;}/* * _copyCoerceToDomain */static CoerceToDomain *_copyCoerceToDomain(CoerceToDomain *from){ CoerceToDomain *newnode = makeNode(CoerceToDomain); COPY_NODE_FIELD(arg); COPY_SCALAR_FIELD(resulttype); COPY_SCALAR_FIELD(resulttypmod); COPY_SCALAR_FIELD(coercionformat); return newnode;}/* * _copyCoerceToDomainValue */static CoerceToDomainValue *_copyCoerceToDomainValue(CoerceToDomainValue *from){ CoerceToDomainValue *newnode = makeNode(CoerceToDomainValue); COPY_SCALAR_FIELD(typeId); COPY_SCALAR_FIELD(typeMod); return newnode;}/* * _copySetToDefault */static SetToDefault *_copySetToDefault(SetToDefault *from){ SetToDefault *newnode = makeNode(SetToDefault); COPY_SCALAR_FIELD(typeId); COPY_SCALAR_FIELD(typeMod); return newnode;}/* * _copyTargetEntry */static TargetEntry *_copyTargetEntry(TargetEntry *from){ TargetEntry *newnode = makeNode(TargetEntry); COPY_NODE_FIELD(resdom); COPY_NODE_FIELD(expr); return newnode;}/* * _copyRangeTblRef */static RangeTblRef *_copyRangeTblRef(RangeTblRef *from){ RangeTblRef *newnode = makeNode(RangeTblRef); COPY_SCALAR_FIELD(rtindex); return newnode;}/* * _copyJoinExpr */static JoinExpr *_copyJoinExpr(JoinExpr *from){ JoinExpr *newnode = makeNode(JoinExpr); COPY_SCALAR_FIELD(jointype); COPY_SCALAR_FIELD(isNatural); COPY_NODE_FIELD(larg); COPY_NODE_FIELD(rarg); COPY_NODE_FIELD(using); COPY_NODE_FIELD(quals); COPY_NODE_FIELD(alias); COPY_SCALAR_FIELD(rtindex); return newnode;}/* * _copyFromExpr */static FromExpr *_copyFromExpr(FromExpr *from){ FromExpr *newnode = makeNode(FromExpr); COPY_NODE_FIELD(fromlist); COPY_NODE_FIELD(quals); return newnode;}/* **************************************************************** * relation.h copy functions * * We don't support copying RelOptInfo, IndexOptInfo, or Path nodes. * There are some subsidiary structs that are useful to copy, though. * **************************************************************** *//* * _copyPathKeyItem */static PathKeyItem *_copyPathKeyItem(PathKeyItem *from){ PathKeyItem *newnode = makeNode(PathKeyItem); COPY_NODE_FIELD(key); COPY_SCALAR_FIELD(sortop); return newnode;}/* * _copyRestrictInfo */static RestrictInfo *_copyRestrictInfo(RestrictInfo *from){ RestrictInfo *newnode = makeNode(RestrictInfo); COPY_NODE_FIELD(clause); COPY_SCALAR_FIELD(ispusheddown); COPY_NODE_FIELD(subclauseindices); /* XXX probably bad */ COPY_SCALAR_FIELD(eval_cost); COPY_SCALAR_FIELD(this_selec); COPY_BITMAPSET_FIELD(left_relids); COPY_BITMAPSET_FIELD(right_relids); COPY_SCALAR_FIELD(mergejoinoperator); COPY_SCALAR_FIELD(left_sortop); COPY_SCALAR_FIELD(right_sortop); /* * Do not copy pathkeys, since they'd not be canonical in a copied * query */ newnode->left_pathkey = NIL; newnode->right_pathkey = NIL; COPY_SCALAR_FIELD(left_mergescansel); COPY_SCALAR_FIELD(right_mergescansel); COPY_SCALAR_FIELD(hashjoinoperator); COPY_SCALAR_FIELD(left_bucketsize); COPY_SCALAR_FIELD(right_bucketsize); return newnode;}/* * _copyJoinInfo */static JoinInfo *_copyJoinInfo(JoinInfo *from){ JoinInfo *newnode = makeNode(JoinInfo); COPY_BITMAPSET_FIELD(unjoined_relids); COPY_NODE_FIELD(jinfo_restrictinfo); return newnode;}/* * _copyInClauseInfo */static InClauseInfo *_copyInClauseInfo(InClauseInfo *from){ InClauseInfo *newnode = makeNode(InClauseInfo); COPY_BITMAPSET_FIELD(lefthand); COPY_BITMAPSET_FIELD(righthand); COPY_NODE_FIELD(sub_targetlist); return newnode;}/* **************************************************************** * parsenodes.h copy functions * **************************************************************** */static RangeTblEntry *_copyRangeTblEntry(RangeTblEntry *from){ RangeTblEntry *newnode = makeNode(RangeTblEntry); COPY_SCALAR_FIELD(rtekind); COPY_SCALAR_FIELD(relid); COPY_NODE_FIELD(subquery); COPY_NODE_FIELD(funcexpr); COPY_NODE_FIELD(coldeflist); COPY_SCALAR_FIELD(jointype); COPY_NODE_FIELD(joinaliasvars); COPY_NODE_FIELD(alias); COPY_NODE_FIELD(eref); COPY_SCALAR_FIELD(inh); COPY_SCALAR_FIELD(inFromCl); COPY_SCALAR_FIELD(checkForRead); COPY_SCALAR_FIELD(checkForWrite); COPY_SCALAR_FIELD(checkAsUser); return newnode;}static FkConstraint *_copyFkConstraint(FkConstraint *from){ FkConstraint *newnode = makeNode(FkConstraint); COPY_STRING_FIELD(constr_name); COPY_NODE_FIELD(pktable); COPY_NODE_FIELD(fk_attrs); COPY_NODE_FIELD(pk_attrs); COPY_SCALAR_FIELD(fk_matchtype); COPY_SCALAR_FIELD(fk_upd_action); COPY_SCALAR_FIELD(fk_del_action); COPY_SCALAR_FIELD(deferrable); COPY_SCALAR_FIELD(initdeferred); COPY_SCALAR_FIELD(skip_validation); return newnode;}static SortClause *_copySortClause(SortClause *from){ SortClause *newnode = makeNode(SortClause); COPY_SCALAR_FIELD(tleSortGroupRef); COPY_SCALAR_FIELD(sortop); return newnode;}static GroupClause *_copyGroupClause(GroupClause *from){ GroupClause *newnode = makeNode(GroupClause); COPY_SCALAR_FIELD(tleSortGroupRef); COPY_SCALAR_FIELD(sortop); return newnode;}static A_Expr *_copyAExpr(A_Expr *from){ A_Expr *newnode = makeNode(A_Expr); COPY_SCALAR_FIELD(kind); COPY_NODE_FIELD(name); COPY_NODE_FIELD(lexpr); COPY_NODE_FIELD(rexpr); return newnode;}static ColumnRef *_copyColumnRef(ColumnRef *from){ ColumnRef *newnode = makeNode(ColumnRef); COPY_NODE_FIELD(fields); COPY_NODE_FIELD(indirection); return newnode;}static ParamRef *_copyParamRef(ParamRef *from){ ParamRef *newnode = makeNode(ParamRef); COPY_SCALAR_FIELD(number); COPY_NODE_FIELD(fields); COPY_NODE_FIELD(indirection); return newnode;}static A_Const *_copyAConst(A_Const *from){ A_Const *newnode = makeNode(A_Const); /* This part must duplicate _copyValue */ COPY_SCALAR_FIELD(val.type); switch (from->val.type) { case T_Integer: COPY_SCALAR_FIELD(val.val.ival); break; case T_Float: case T_String: case T_BitString: COPY_STRING_FIELD(val.val.str); break; case T_Null: /* nothing to do */ break; default: elog(ERROR, "unrecognized node type: %d", (int) from->val.type); break; } COPY_NODE_FIELD(typename); return newnode;}static FuncCall *_copyFuncCall(FuncCall *from){ FuncCall *newnode = makeNode(FuncCall); COPY_NODE_FIELD(funcname); COPY_NODE_FIELD(args); COPY_SCALAR_FIELD(agg_star); COPY_SCALAR_FIELD(agg_distinct); return newnode;}static A_Indices *_copyAIndices(A_Indices *from){ A_Indices *newnode = makeNode(A_Indices); COPY_NODE_FIELD(lidx); COPY_NODE_FIELD(uidx); return newnode;}static ExprFieldSelect *_copyExprFieldSelect(ExprFieldSelect *from){ ExprFieldSelect *newnode = makeNode(ExprFieldSelect); COPY_NODE_FIELD(arg); COPY_NODE_FIELD(fields); COPY_NODE_FIELD(indirection); return newnode;}static ResTarget *_copyResTarget(ResTarget *from){ ResTarget *newnode = makeNode(ResTarget); COPY_STRING_FIELD(name); COPY_NODE_FIELD(indirection); COPY_NODE_FIELD(val); return newnode;}static TypeName *_copyTypeName(TypeName *from){ TypeName *newnode = makeNode(TypeName); COPY_NODE_FIELD(names); COPY_SCALAR_FIELD(typeid); COPY_SCALAR_FIELD(timezone); COPY_SCALAR_FIELD(setof); COPY_SCALAR_FIELD(pct_type); COPY_SCALAR_FIELD(typmod); COPY_NODE_FIELD(arrayBounds); return newnode;}static SortBy *_copySortBy(SortBy *from){ SortBy *newnode = makeNode(SortBy); COPY_SCALAR_FIELD(sortby_kind); COPY_NODE_FIELD(useOp); COPY_NODE_FIELD(node); return newnode;}static RangeSubselect *_copyRangeSubselect(RangeSubselect *from){ RangeSubselect *newnode = makeNode(RangeSubselect); COPY_NODE_FIELD(subquery); COPY_NODE_FIELD(alias); return newnode;}static RangeFunction *_copyRangeFunction(RangeFunction *from){ RangeFunction *newnode = makeNode(RangeFunction); COPY_NODE_FIELD(funccallnode); COPY_NODE_FIELD(alias); COPY_NODE_FIELD(coldeflist); return newnode;}static TypeCast *_copyTypeCast(TypeCast *from){ TypeCast *newnode = makeNode(TypeCast); COPY_NODE_FIELD(arg); COPY_NODE_FIELD(typename); return newnode;}static IndexElem *_copyIndexElem(IndexElem *from){ IndexElem *newnode = makeNode(IndexElem); COPY_STRING_FIELD(name); COPY_NODE_FIELD(expr); COPY_NODE_FIELD(opclass); return newnode;}static ColumnDef *_copyColumnDef(ColumnDef *from){ ColumnDef *newnode = makeNode(ColumnDef); COPY_STRING_FIELD(colname); COPY_NODE_FIELD(typename); COPY_SCALAR_FIELD(inhcount); COPY_SCALAR_FIELD(is_local); COPY_SCALAR_FIELD(is_not_null); COPY_NODE_FIELD(raw_default); COPY_STRING_FIELD(cooked_default); COPY_NODE_FIELD(constraints); COPY_NODE_FIELD(support); return newnode;}static Constraint *_copyConstraint(Constraint *from){ Constraint *newnode = makeNode(Constraint); COPY_SCALAR_FIELD(contype); COPY_STRING_FIELD(name); COPY_NODE_FIELD(raw_expr); COPY_STRING_FIELD(cooked_expr); COPY_NODE_FIELD(keys);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -