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

📄 memnodes.h

📁 关系型数据库 Postgresql 6.5.2
💻 H
字号:
/*------------------------------------------------------------------------- * * memnodes.h *	  POSTGRES memory context node definitions. * * * Copyright (c) 1994, Regents of the University of California * * $Id: memnodes.h,v 1.13 1999/05/25 22:42:55 momjian Exp $ * * XXX the typedefs in this file are different from the other ???nodes.h; *	  they are pointers to structures instead of the structures themselves. *	  If you're wondering, this is plain laziness. I don't want to touch *	  the memory context code which should be revamped altogether some day. *														- ay 10/94 *------------------------------------------------------------------------- */#ifndef MEMNODES_H#define MEMNODES_H#include <lib/fstack.h>#include <utils/memutils.h>#include <nodes/nodes.h>/* * MemoryContext *		A logical context in which memory allocations occur. * * The types of memory contexts can be thought of as members of the * following inheritance hierarchy with properties summarized below. * *						Node *						| *				MemoryContext___ *				/				\ *		GlobalMemory	PortalMemoryContext *						/				\ *		PortalVariableMemory	PortalHeapMemory * *						Flushed at		Flushed at		Checkpoints *						Transaction		Portal *						Commit			Close * * GlobalMemory					n				n				n * PortalVariableMemory			n				y				n * PortalHeapMemory				y				y				y */typedef struct MemoryContextMethodsData{	Pointer		(*alloc) ();	void		(*free_p) ();	/* need to use free as a #define, so can't								 * use free */	Pointer		(*realloc) ();	char	   *(*getName) ();	void		(*dump) ();}		   *MemoryContextMethods;typedef struct MemoryContextData{	NodeTag		type;	MemoryContextMethods method;} MemoryContextData;/* utils/mcxt.h contains typedef struct MemoryContextData *MemoryContext *//* think about doing this right some time but we'll have explicit fields   for now -ay 10/94 */typedef struct GlobalMemoryData{	NodeTag		type;	MemoryContextMethods method;	AllocSetData setData;	char	   *name;	OrderedElemData elemData;} GlobalMemoryData;/* utils/mcxt.h contains typedef struct GlobalMemoryData *GlobalMemory */typedef struct MemoryContextData *PortalMemoryContext;typedef struct PortalVariableMemoryData{	NodeTag		type;	MemoryContextMethods method;	AllocSetData setData;}		   *PortalVariableMemory;typedef struct PortalHeapMemoryData{	NodeTag		type;	MemoryContextMethods method;	Pointer		block;	FixedStackData stackData;}		   *PortalHeapMemory;/* * MemoryContextIsValid *		True iff memory context is valid. */#define MemoryContextIsValid(context) \	(IsA(context,MemoryContext) || IsA(context,GlobalMemory) || \	 IsA(context,PortalVariableMemory) || IsA(context,PortalHeapMemory))#endif	 /* MEMNODES_H */

⌨️ 快捷键说明

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