⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copyfuncs.c

📁 PostgreSQL7.4.6 for Linux
💻 C
📖 第 1 页 / 共 4 页
字号:
	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 + -