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

📄 copyfuncs.c

📁 PostgreSQL7.4.6 for Linux
💻 C
📖 第 1 页 / 共 4 页
字号:
	COPY_STRING_FIELD(user);	COPY_NODE_FIELD(options);	return newnode;}static AlterUserSetStmt *_copyAlterUserSetStmt(AlterUserSetStmt *from){	AlterUserSetStmt *newnode = makeNode(AlterUserSetStmt);	COPY_STRING_FIELD(user);	COPY_STRING_FIELD(variable);	COPY_NODE_FIELD(value);	return newnode;}static DropUserStmt *_copyDropUserStmt(DropUserStmt *from){	DropUserStmt *newnode = makeNode(DropUserStmt);	COPY_NODE_FIELD(users);	return newnode;}static LockStmt *_copyLockStmt(LockStmt *from){	LockStmt   *newnode = makeNode(LockStmt);	COPY_NODE_FIELD(relations);	COPY_SCALAR_FIELD(mode);	return newnode;}static ConstraintsSetStmt *_copyConstraintsSetStmt(ConstraintsSetStmt *from){	ConstraintsSetStmt *newnode = makeNode(ConstraintsSetStmt);	COPY_NODE_FIELD(constraints);	COPY_SCALAR_FIELD(deferred);	return newnode;}static CreateGroupStmt *_copyCreateGroupStmt(CreateGroupStmt *from){	CreateGroupStmt *newnode = makeNode(CreateGroupStmt);	COPY_STRING_FIELD(name);	COPY_NODE_FIELD(options);	return newnode;}static AlterGroupStmt *_copyAlterGroupStmt(AlterGroupStmt *from){	AlterGroupStmt *newnode = makeNode(AlterGroupStmt);	COPY_STRING_FIELD(name);	COPY_SCALAR_FIELD(action);	COPY_NODE_FIELD(listUsers);	return newnode;}static DropGroupStmt *_copyDropGroupStmt(DropGroupStmt *from){	DropGroupStmt *newnode = makeNode(DropGroupStmt);	COPY_STRING_FIELD(name);	return newnode;}static ReindexStmt *_copyReindexStmt(ReindexStmt *from){	ReindexStmt *newnode = makeNode(ReindexStmt);	COPY_SCALAR_FIELD(kind);	COPY_NODE_FIELD(relation);	COPY_STRING_FIELD(name);	COPY_SCALAR_FIELD(force);	COPY_SCALAR_FIELD(all);	return newnode;}static CreateSchemaStmt *_copyCreateSchemaStmt(CreateSchemaStmt *from){	CreateSchemaStmt *newnode = makeNode(CreateSchemaStmt);	COPY_STRING_FIELD(schemaname);	COPY_STRING_FIELD(authid);	COPY_NODE_FIELD(schemaElts);	return newnode;}static CreateConversionStmt *_copyCreateConversionStmt(CreateConversionStmt *from){	CreateConversionStmt *newnode = makeNode(CreateConversionStmt);	COPY_NODE_FIELD(conversion_name);	COPY_STRING_FIELD(for_encoding_name);	COPY_STRING_FIELD(to_encoding_name);	COPY_NODE_FIELD(func_name);	COPY_SCALAR_FIELD(def);	return newnode;}static CreateCastStmt *_copyCreateCastStmt(CreateCastStmt *from){	CreateCastStmt *newnode = makeNode(CreateCastStmt);	COPY_NODE_FIELD(sourcetype);	COPY_NODE_FIELD(targettype);	COPY_NODE_FIELD(func);	COPY_SCALAR_FIELD(context);	return newnode;}static DropCastStmt *_copyDropCastStmt(DropCastStmt *from){	DropCastStmt *newnode = makeNode(DropCastStmt);	COPY_NODE_FIELD(sourcetype);	COPY_NODE_FIELD(targettype);	COPY_SCALAR_FIELD(behavior);	return newnode;}static PrepareStmt *_copyPrepareStmt(PrepareStmt *from){	PrepareStmt *newnode = makeNode(PrepareStmt);	COPY_STRING_FIELD(name);	COPY_NODE_FIELD(argtypes);	COPY_OIDLIST_FIELD(argtype_oids);	COPY_NODE_FIELD(query);	return newnode;}static ExecuteStmt *_copyExecuteStmt(ExecuteStmt *from){	ExecuteStmt *newnode = makeNode(ExecuteStmt);	COPY_STRING_FIELD(name);	COPY_NODE_FIELD(into);	COPY_NODE_FIELD(params);	return newnode;}static DeallocateStmt *_copyDeallocateStmt(DeallocateStmt *from){	DeallocateStmt *newnode = makeNode(DeallocateStmt);	COPY_STRING_FIELD(name);	return newnode;}/* **************************************************************** *					pg_list.h copy functions * **************************************************************** */static Value *_copyValue(Value *from){	Value	   *newnode = makeNode(Value);	/* See also _copyAConst when changing this code! */	COPY_SCALAR_FIELD(type);	switch (from->type)	{		case T_Integer:			COPY_SCALAR_FIELD(val.ival);			break;		case T_Float:		case T_String:		case T_BitString:			COPY_STRING_FIELD(val.str);			break;		case T_Null:			/* nothing to do */			break;		default:			elog(ERROR, "unrecognized node type: %d",				 (int) from->type);			break;	}	return newnode;}/* * copyObject * * Create a copy of a Node tree or list.  This is a "deep" copy: all * substructure is copied too, recursively. */void *copyObject(void *from){	void	   *retval;	if (from == NULL)		return NULL;	switch (nodeTag(from))	{			/*			 * PLAN NODES			 */		case T_Plan:			retval = _copyPlan(from);			break;		case T_Result:			retval = _copyResult(from);			break;		case T_Append:			retval = _copyAppend(from);			break;		case T_Scan:			retval = _copyScan(from);			break;		case T_SeqScan:			retval = _copySeqScan(from);			break;		case T_IndexScan:			retval = _copyIndexScan(from);			break;		case T_TidScan:			retval = _copyTidScan(from);			break;		case T_SubqueryScan:			retval = _copySubqueryScan(from);			break;		case T_FunctionScan:			retval = _copyFunctionScan(from);			break;		case T_Join:			retval = _copyJoin(from);			break;		case T_NestLoop:			retval = _copyNestLoop(from);			break;		case T_MergeJoin:			retval = _copyMergeJoin(from);			break;		case T_HashJoin:			retval = _copyHashJoin(from);			break;		case T_Material:			retval = _copyMaterial(from);			break;		case T_Sort:			retval = _copySort(from);			break;		case T_Group:			retval = _copyGroup(from);			break;		case T_Agg:			retval = _copyAgg(from);			break;		case T_Unique:			retval = _copyUnique(from);			break;		case T_Hash:			retval = _copyHash(from);			break;		case T_SetOp:			retval = _copySetOp(from);			break;		case T_Limit:			retval = _copyLimit(from);			break;			/*			 * PRIMITIVE NODES			 */		case T_Resdom:			retval = _copyResdom(from);			break;		case T_Alias:			retval = _copyAlias(from);			break;		case T_RangeVar:			retval = _copyRangeVar(from);			break;		case T_Var:			retval = _copyVar(from);			break;		case T_Const:			retval = _copyConst(from);			break;		case T_Param:			retval = _copyParam(from);			break;		case T_Aggref:			retval = _copyAggref(from);			break;		case T_ArrayRef:			retval = _copyArrayRef(from);			break;		case T_FuncExpr:			retval = _copyFuncExpr(from);			break;		case T_OpExpr:			retval = _copyOpExpr(from);			break;		case T_DistinctExpr:			retval = _copyDistinctExpr(from);			break;		case T_ScalarArrayOpExpr:			retval = _copyScalarArrayOpExpr(from);			break;		case T_BoolExpr:			retval = _copyBoolExpr(from);			break;		case T_SubLink:			retval = _copySubLink(from);			break;		case T_SubPlan:			retval = _copySubPlan(from);			break;		case T_FieldSelect:			retval = _copyFieldSelect(from);			break;		case T_RelabelType:			retval = _copyRelabelType(from);			break;		case T_CaseExpr:			retval = _copyCaseExpr(from);			break;		case T_CaseWhen:			retval = _copyCaseWhen(from);			break;		case T_ArrayExpr:			retval = _copyArrayExpr(from);			break;		case T_CoalesceExpr:			retval = _copyCoalesceExpr(from);			break;		case T_NullIfExpr:			retval = _copyNullIfExpr(from);			break;		case T_NullTest:			retval = _copyNullTest(from);			break;		case T_BooleanTest:			retval = _copyBooleanTest(from);			break;		case T_CoerceToDomain:			retval = _copyCoerceToDomain(from);			break;		case T_CoerceToDomainValue:			retval = _copyCoerceToDomainValue(from);			break;		case T_SetToDefault:			retval = _copySetToDefault(from);			break;		case T_TargetEntry:			retval = _copyTargetEntry(from);			break;		case T_RangeTblRef:			retval = _copyRangeTblRef(from);			break;		case T_JoinExpr:			retval = _copyJoinExpr(from);			break;		case T_FromExpr:			retval = _copyFromExpr(from);			break;			/*			 * RELATION NODES			 */		case T_PathKeyItem:			retval = _copyPathKeyItem(from);			break;		case T_RestrictInfo:			retval = _copyRestrictInfo(from);			break;		case T_JoinInfo:			retval = _copyJoinInfo(from);			break;		case T_InClauseInfo:			retval = _copyInClauseInfo(from);			break;			/*			 * VALUE NODES			 */		case T_Integer:		case T_Float:		case T_String:		case T_BitString:		case T_Null:			retval = _copyValue(from);			break;		case T_List:			{				List	   *list = from,						   *oldl,						   *newcell,						   *prev;				/* rather ugly coding for speed... */				/* Note the input list cannot be NIL if we got here. */				newcell = makeNode(List);				lfirst(newcell) = copyObject(lfirst(list));				retval = (void *) newcell;				prev = newcell;				foreach(oldl, lnext(list))				{					newcell = makeNode(List);					lfirst(newcell) = copyObject(lfirst(oldl));					prev->next = newcell;					prev = newcell;				}				prev->next = NIL;			}			break;			/*			 * PARSE NODES			 */		case T_Query:			retval = _copyQuery(from);			break;		case T_InsertStmt:			retval = _copyInsertStmt(from);			break;		case T_DeleteStmt:			retval = _copyDeleteStmt(from);			break;		case T_UpdateStmt:			retval = _copyUpdateStmt(from);			break;		case T_SelectStmt:			retval = _copySelectStmt(from);			break;		case T_SetOperationStmt:			retval = _copySetOperationStmt(from);			break;		case T_AlterTableStmt:			retval = _copyAlterTableStmt(from);			break;		case T_AlterDomainStmt:			retval = _copyAlterDomainStmt(from);			break;		case T_GrantStmt:			retval = _copyGrantStmt(from);			break;		case T_DeclareCursorStmt:			retval = _copyDeclareCursorStmt(from);			break;		case T_ClosePortalStmt:			retval = _copyClosePortalStmt(from);			break;		case T_ClusterStmt:			retval = _copyClusterStmt(from);			break;		case T_CopyStmt:			retval = _copyCopyStmt(from);			break;		case T_CreateStmt:			retval = _copyCreateStmt(from);			break;		case T_InhRelation:			retval = _copyInhRelation(from);			break;		case T_DefineStmt:			retval = _copyDefineStmt(from);			break;		case T_DropStmt:			retval = _copyDropStmt(from);			break;		case T_TruncateStmt:			retval = _copyTruncateStmt(from);			break;		case T_CommentStmt:			retval = _copyCommentStmt(from);			break;		case T_FetchStmt:			retval = _copyFetchStmt(from);			break;		case T_IndexStmt:			retval = _copyIndexStmt(from);			break;		case T_CreateFunctionStmt:			retval = _copyCreateFunctionStmt(from);			break;		case T_RemoveAggrStmt:			retval = _copyRemoveAggrStmt(from);			break;		case T_RemoveFuncStmt:			retval = _copyRemoveFuncStmt(from);			break;		case T_RemoveOperStmt:			retval = _copyRemoveOperStmt(from);			break;		case T_RemoveOpClassStmt:			retval = _copyRemoveOpClassStmt(from);			break;		case T_RenameStmt:			retval = _copyRenameStmt(from);			break;		case T_RuleStmt:			retval = _copyRuleStmt(from);			break;		case T_NotifyStmt:			retval = _copyNotifyStmt(from);			break;		case T_ListenStmt:			retval = _copyListenStmt(from);			break;		case T_UnlistenStmt:			retval = _copyUnlistenStmt(from);			break;		case T_TransactionStmt:			retval = _copyTransactionStmt(from);			break;		case T_CompositeTypeStmt:			retval = _copyCompositeTypeStmt(from);			break;		case T_ViewStmt:			retval = _copyViewStmt(from);			break;		case T_LoadStmt:			retval = _copyLoadStmt(from);			break;		case T_CreateDomainStmt:			retval = _copyCreateDomainStmt(from);			break;		case T_CreateOpClassStmt:			retval = _copyCreateOpClassStmt(from);			break;		case T_CreateOpClassItem:			retval = _copyCreateOpClassItem(from);			break;		case T_CreatedbStmt:			retval = _copyCreatedbStmt(from);			break;		case T_AlterDatabaseSetStmt:			retval = _copyAlterDatabaseSetStmt(from);			break;		case T_DropdbStmt:			retval = _copyDropdbStmt(from);			break;		case T_VacuumStmt:			retval = _copyVacuumStmt(from);			break;		case T_ExplainStmt:			retval = _copyExplainStmt(from);			break;		case T_CreateSeqStmt:			retval = _copyCreateSeqStmt(from);			break;		case T_AlterSeqStmt:			retval = _copyAlterSeqStmt(from);			break;		case T_VariableSetStmt:			retval = _copyVariableSetStmt(from);			break;		case T_VariableShowStmt:			retval = _copyVariableShowStmt(from);			break;		case T_VariableResetStmt:			retval = _copyVariableResetStmt(from);			break;		case T_CreateTrigStmt:			retval = _copyCreateTrigStmt(from);			break;		case T_DropPropertyStmt:			retval = _copyDropPropertyStmt(from);			break;		case T_CreatePLangStmt:			retval = _copyCreatePLangStmt(from);			break;		case T_DropPLangStmt:			retval = _copyDropPLangStmt(from);			break;		case T_CreateUserStmt:			retval = _copyCreateUserStmt(from);			break;		case T_AlterUserStmt:			retval = _copyAlterUserStmt(from);			break;		case T_AlterUserSetStmt:			retval = _copyAlterUserSetStmt(from);			break;		case T_DropUserStmt:			retval = _copyDropUserStmt(from);			break;		case T_LockStmt:			retval = _copyLockStmt(from);			break;		case T_ConstraintsSetStmt:			retval = _copyConstraintsSetStmt(from);			break;		case T_CreateGroupStmt:			retval = _copyCreateGroupStmt(from);			break;		case T_AlterGroupStmt:			retval = _copyAlterGroupStmt(from);			break;		case T_DropGroupStmt:			retval = _copyDropGroupStmt(from);			break;		case T_ReindexStmt:			retval = _copyReindexStmt(from);			break;		case T_CheckPointStmt:			retval = (void *) makeNode(CheckPointStmt);			break;		case T_CreateSchemaStmt:			retval = _copyCreateSchemaStmt(from);			break;		case T_CreateConversionStmt:			retval = _copyCreateConversionStmt(from);			break;		case T_CreateCastStmt:			retval = _copyCreateCastStmt(from);			break;		case T_DropCastStmt:			retval = _copyDropCastStmt(from);			break;		case T_PrepareStmt:			retval = _copyPrepareStmt(from);			break;		case T_ExecuteStmt:			retval = _copyExecuteStmt(from);			break;		case T_DeallocateStmt:			retval = _copyDeallocateStmt(from);			break;		case T_A_Expr:			retval = _copyAExpr(from);			break;		case T_ColumnRef:			retval = _copyColumnRef(from);			break;		case T_ParamRef:			retval = _copyParamRef(from);			break;		case T_A_Const:			retval = _copyAConst(from);			break;		case T_FuncCall:			retval = _copyFuncCall(from);			break;		case T_A_Indices:			retval = _copyAIndices(from);			break;		case T_ExprFieldSelect:			retval = _copyExprFieldSelect(from);			break;		case T_ResTarget:			retval = _copyResTarget(from);			break;		case T_TypeCast:			retval = _copyTypeCast(from);			break;		case T_SortBy:			retval = _copySortBy(from);			break;		case T_RangeSubselect:			retval = _copyRangeSubselect(from);			break;		case T_RangeFunction:			retval = _copyRangeFunction(from);			break;		case T_TypeName:			retval = _copyTypeName(from);			break;		case T_IndexElem:			retval = _copyIndexElem(from);			break;		case T_ColumnDef:			retval = _copyColumnDef(from);			break;		case T_Constraint:			retval = _copyConstraint(from);			break;		case T_DefElem:			retval = _copyDefElem(from);			break;		case T_RangeTblEntry:			retval = _copyRangeTblEntry(from);			break;		case T_SortClause:			retval = _copySortClause(from);			break;		case T_GroupClause:			retval = _copyGroupClause(from);			break;		case T_FkConstraint:			retval = _copyFkConstraint(from);			break;		case T_PrivGrantee:			retval = _copyPrivGrantee(from);			break;		case T_FuncWithArgs:			retval = _copyFuncWithArgs(from);			break;		default:			elog(ERROR, "unrecognized node type: %d", (int) nodeTag(from));			retval = from;		/* keep compiler quiet */			break;	}	return retval;}

⌨️ 快捷键说明

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