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

📄 copyfuncs.c

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 C
📖 第 1 页 / 共 5 页
字号:
_copyRangeVar(RangeVar *from){	RangeVar   *newnode = makeNode(RangeVar);	COPY_STRING_FIELD(catalogname);	COPY_STRING_FIELD(schemaname);	COPY_STRING_FIELD(relname);	COPY_SCALAR_FIELD(inhOpt);	COPY_SCALAR_FIELD(istemp);	COPY_NODE_FIELD(alias);	return newnode;}/* * We don't need a _copyExpr because Expr is an abstract supertype which * should never actually get instantiated.	Also, since it has no common * fields except NodeTag, there's no need for a helper routine to factor * out copying the common fields... *//* * _copyVar */static Var *_copyVar(Var *from){	Var		   *newnode = makeNode(Var);	COPY_SCALAR_FIELD(varno);	COPY_SCALAR_FIELD(varattno);	COPY_SCALAR_FIELD(vartype);	COPY_SCALAR_FIELD(vartypmod);	COPY_SCALAR_FIELD(varlevelsup);	COPY_SCALAR_FIELD(varnoold);	COPY_SCALAR_FIELD(varoattno);	return newnode;}/* * _copyConst */static Const *_copyConst(Const *from){	Const	   *newnode = makeNode(Const);	COPY_SCALAR_FIELD(consttype);	COPY_SCALAR_FIELD(constlen);	if (from->constbyval || from->constisnull)	{		/*		 * passed by value so just copy the datum. Also, don't try to copy		 * struct when value is null!		 */		newnode->constvalue = from->constvalue;	}	else	{		/*		 * passed by reference.  We need a palloc'd copy.		 */		newnode->constvalue = datumCopy(from->constvalue,										from->constbyval,										from->constlen);	}	COPY_SCALAR_FIELD(constisnull);	COPY_SCALAR_FIELD(constbyval);	return newnode;}/* * _copyParam */static Param *_copyParam(Param *from){	Param	   *newnode = makeNode(Param);	COPY_SCALAR_FIELD(paramkind);	COPY_SCALAR_FIELD(paramid);	COPY_STRING_FIELD(paramname);	COPY_SCALAR_FIELD(paramtype);	return newnode;}/* * _copyAggref */static Aggref *_copyAggref(Aggref *from){	Aggref	   *newnode = makeNode(Aggref);	COPY_SCALAR_FIELD(aggfnoid);	COPY_SCALAR_FIELD(aggtype);	COPY_NODE_FIELD(target);	COPY_SCALAR_FIELD(agglevelsup);	COPY_SCALAR_FIELD(aggstar);	COPY_SCALAR_FIELD(aggdistinct);	return newnode;}/* * _copyArrayRef */static ArrayRef *_copyArrayRef(ArrayRef *from){	ArrayRef   *newnode = makeNode(ArrayRef);	COPY_SCALAR_FIELD(refrestype);	COPY_SCALAR_FIELD(refarraytype);	COPY_SCALAR_FIELD(refelemtype);	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_NODE_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_NODE_FIELD(paramIds);	COPY_NODE_FIELD(plan);	COPY_SCALAR_FIELD(plan_id);	COPY_NODE_FIELD(rtable);	COPY_SCALAR_FIELD(useHashTable);	COPY_SCALAR_FIELD(unknownEqFalse);	COPY_NODE_FIELD(setParam);	COPY_NODE_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;}/* * _copyFieldStore */static FieldStore *_copyFieldStore(FieldStore *from){	FieldStore *newnode = makeNode(FieldStore);	COPY_NODE_FIELD(arg);	COPY_NODE_FIELD(newvals);	COPY_NODE_FIELD(fieldnums);	COPY_SCALAR_FIELD(resulttype);	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;}/* * _copyConvertRowtypeExpr */static ConvertRowtypeExpr *_copyConvertRowtypeExpr(ConvertRowtypeExpr *from){	ConvertRowtypeExpr *newnode = makeNode(ConvertRowtypeExpr);	COPY_NODE_FIELD(arg);	COPY_SCALAR_FIELD(resulttype);	COPY_SCALAR_FIELD(convertformat);	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;}/* * _copyCaseTestExpr */static CaseTestExpr *_copyCaseTestExpr(CaseTestExpr *from){	CaseTestExpr *newnode = makeNode(CaseTestExpr);	COPY_SCALAR_FIELD(typeId);	COPY_SCALAR_FIELD(typeMod);	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;}/* * _copyRowExpr */static RowExpr *_copyRowExpr(RowExpr *from){	RowExpr    *newnode = makeNode(RowExpr);	COPY_NODE_FIELD(args);	COPY_SCALAR_FIELD(row_typeid);	COPY_SCALAR_FIELD(row_format);	return newnode;}/* * _copyCoalesceExpr */static CoalesceExpr *_copyCoalesceExpr(CoalesceExpr *from){	CoalesceExpr *newnode = makeNode(CoalesceExpr);	COPY_SCALAR_FIELD(coalescetype);	COPY_NODE_FIELD(args);	return newnode;}/* * _copyMinMaxExpr */static MinMaxExpr *_copyMinMaxExpr(MinMaxExpr *from){	MinMaxExpr *newnode = makeNode(MinMaxExpr);	COPY_SCALAR_FIELD(minmaxtype);	COPY_SCALAR_FIELD(op);	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(expr);	COPY_SCALAR_FIELD(resno);	COPY_STRING_FIELD(resname);	COPY_SCALAR_FIELD(ressortgroupref);	COPY_SCALAR_FIELD(resorigtbl);	COPY_SCALAR_FIELD(resorigcol);	COPY_SCALAR_FIELD(resjunk);	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(is_pushed_down);	COPY_SCALAR_FIELD(outerjoin_delayed);	COPY_SCALAR_FIELD(can_join);	COPY_BITMAPSET_FIELD(clause_relids);	COPY_BITMAPSET_FIELD(required_relids);	COPY_BITMAPSET_FIELD(left_relids);	COPY_BITMAPSET_FIELD(right_relids);	COPY_NODE_FIELD(orclause);	COPY_SCALAR_FIELD(eval_cost);	COPY_SCALAR_FIELD(this_selec);	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;}/* * _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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -