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

📄 rel.h

📁 关系型数据库 Postgresql 6.5.2
💻 H
字号:
/*------------------------------------------------------------------------- * * rel.h *	  POSTGRES relation descriptor definitions. * * * Copyright (c) 1994, Regents of the University of California * * $Id: rel.h,v 1.23.2.1 1999/07/30 17:07:22 scrappy Exp $ * *------------------------------------------------------------------------- */#ifndef REL_H#define REL_H#include "access/strat.h"#include "access/tupdesc.h"#include "catalog/pg_am.h"#include "catalog/pg_class.h"#include "rewrite/prs2lock.h"#include "storage/fd.h"typedef struct Trigger{	char	   *tgname;	Oid			tgfoid;	FmgrInfo	tgfunc;	int16		tgtype;	int16		tgnargs;	int16		tgattr[8];	char	  **tgargs;} Trigger;typedef struct TriggerDesc{	uint16		n_before_statement[4];	uint16		n_before_row[4];	uint16		n_after_row[4];	uint16		n_after_statement[4];	Trigger   **tg_before_statement[4];	Trigger   **tg_before_row[4];	Trigger   **tg_after_row[4];	Trigger   **tg_after_statement[4];	Trigger    *triggers;} TriggerDesc;typedef struct RelationData{	File		rd_fd;			/* open file descriptor */	int			rd_nblocks;		/* number of blocks in rel */	uint16		rd_refcnt;		/* reference count */	bool		rd_myxactonly;	/* uses the local buffer mgr */	bool		rd_isnailed;	/* rel is nailed in cache */	bool		rd_isnoname;	/* rel has no name */	bool		rd_nonameunlinked;		/* noname rel already unlinked */	Form_pg_am	rd_am;			/* AM tuple */	Form_pg_class rd_rel;		/* RELATION tuple */	Oid			rd_id;			/* relations's object id */	Pointer		lockInfo;		/* ptr. to misc. info. */	TupleDesc	rd_att;			/* tuple desciptor */	RuleLock   *rd_rules;		/* rewrite rules */	IndexStrategy rd_istrat;	RegProcedure *rd_support;	TriggerDesc *trigdesc;} RelationData;typedef RelationData *Relation;/* ---------------- *		RelationPtr is used in the executor to support index scans *		where we have to keep track of several index relations in an *		array.	-cim 9/10/89 * ---------------- */typedef Relation *RelationPtr;#define InvalidRelation ((Relation)NULL)/* * RelationIsValid *		True iff relation descriptor is valid. */#define RelationIsValid(relation) PointerIsValid(relation)/* * RelationGetSystemPort *		Returns system port of a relation. * * Note: *		Assumes relation descriptor is valid. */#define RelationGetSystemPort(relation) ((relation)->rd_fd)/* * RelationGetLockInfo *		Returns the lock information structure in the reldesc * */#define RelationGetLockInfo(relation) ((relation)->lockInfo)/* * RelationHasReferenceCountZero *		True iff relation reference count is zero. * * Note: *		Assumes relation descriptor is valid. */#define RelationHasReferenceCountZero(relation) \		((bool)((relation)->rd_refcnt == 0))/* * RelationSetReferenceCount *		Sets relation reference count. */#define RelationSetReferenceCount(relation,count) ((relation)->rd_refcnt = count)/* * RelationIncrementReferenceCount *		Increments relation reference count. */#define RelationIncrementReferenceCount(relation) ((relation)->rd_refcnt += 1);/* * RelationDecrementReferenceCount *		Decrements relation reference count. */#define RelationDecrementReferenceCount(relation) ((relation)->rd_refcnt -= 1)/* * RelationGetForm *		Returns relation attribute values for a relation. * * Note: *		Assumes relation descriptor is valid. */#define RelationGetForm(relation) ((relation)->rd_rel)/* * RelationGetRelid * *	returns the object id of the relation * */#define RelationGetRelid(relation) ((relation)->rd_id)/* * RelationGetFile * *	  Returns the open File decscriptor */#define RelationGetFile(relation) ((relation)->rd_fd)/* * RelationGetRelationName * *	  Returns a Relation Name */#define RelationGetRelationName(relation) (&(relation)->rd_rel->relname)/* * RelationGetRelationName * *	  Returns a the number of attributes. */#define RelationGetNumberOfAttributes(relation) ((relation)->rd_rel->relnatts)/* * RelationGetDescr *		Returns tuple descriptor for a relation. * * Note: *		Assumes relation descriptor is valid. */#define RelationGetDescr(relation) ((relation)->rd_att)extern IndexStrategy RelationGetIndexStrategy(Relation relation);extern void RelationSetIndexSupport(Relation relation, IndexStrategy strategy,						RegProcedure *support);#endif	 /* REL_H */

⌨️ 快捷键说明

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