xact.h

来自「关系型数据库 Postgresql 6.5.2」· C头文件 代码 · 共 123 行

H
123
字号
/*------------------------------------------------------------------------- * * xact.h *	  postgres transaction system header * * * Copyright (c) 1994, Regents of the University of California * * $Id: xact.h,v 1.20.2.1 1999/07/30 18:27:00 scrappy Exp $ * *------------------------------------------------------------------------- */#ifndef XACT_H#define XACT_H#include "access/transam.h"#include "utils/nabstime.h"/* ---------------- *		transaction state structure * ---------------- */typedef struct TransactionStateData{	TransactionId transactionIdData;	CommandId	commandId;	CommandId	scanCommandId;	AbsoluteTime startTime;	int			state;	int			blockState;} TransactionStateData;/* * Xact isolation levels */#define XACT_DIRTY_READ			0		/* not implemented */#define XACT_READ_COMMITTED		1#define XACT_REPEATABLE_READ	2		/* not implemented */#define XACT_SERIALIZABLE		3extern int	DefaultXactIsoLevel;extern int	XactIsoLevel;/* ---------------- *		transaction states * ---------------- */#define TRANS_DEFAULT			0#define TRANS_START				1#define TRANS_INPROGRESS		2#define TRANS_COMMIT			3#define TRANS_ABORT				4#define TRANS_DISABLED			5/* ---------------- *		transaction block states * ---------------- */#define TBLOCK_DEFAULT			0#define TBLOCK_BEGIN			1#define TBLOCK_INPROGRESS		2#define TBLOCK_END				3#define TBLOCK_ABORT			4#define TBLOCK_ENDABORT			5typedef TransactionStateData *TransactionState;#define TransactionIdIsValid(xid)		((bool) (xid != NullTransactionId))#define TransactionIdStore(xid, dest)	\	(*((TransactionId*)dest) = (TransactionId)xid)#define StoreInvalidTransactionId(dest) \	(*((TransactionId*)dest) = NullTransactionId)/* ---------------------------------------------------------------- *		TransactionIdEquals * ---------------------------------------------------------------- */#define TransactionIdEquals(id1, id2) \( \	((bool) ((id1) == (id2))) \)/* ---------------- *		extern definitions * ---------------- */extern int	TransactionFlushEnabled(void);extern void SetTransactionFlushEnabled(bool state);extern bool IsAbortedTransactionBlockState(void);extern void OverrideTransactionSystem(bool flag);extern TransactionId GetCurrentTransactionId(void);extern CommandId GetCurrentCommandId(void);extern CommandId GetScanCommandId(void);extern void SetScanCommandId(CommandId);extern AbsoluteTime GetCurrentTransactionStartTime(void);extern bool TransactionIdIsCurrentTransactionId(TransactionId xid);extern bool CommandIdIsCurrentCommandId(CommandId cid);extern bool CommandIdGEScanCommandId(CommandId cid);extern void CommandCounterIncrement(void);extern void InitializeTransactionSystem(void);extern bool CurrentXactInProgress(void);extern void StartTransactionCommand(void);extern void CommitTransactionCommand(void);extern void AbortCurrentTransaction(void);extern void BeginTransactionBlock(void);extern void EndTransactionBlock(void);extern bool IsTransactionBlock(void);extern void UserAbortTransactionBlock(void);extern void AbortOutOfAnyTransaction(void);extern TransactionId DisabledTransactionId;/* defined in xid.c */extern TransactionId xidin(char *representation);extern char *xidout(TransactionId transactionId);extern bool xideq(TransactionId xid1, TransactionId xid2);extern void TransactionIdAdd(TransactionId *xid, int value);#endif	 /* XACT_H */

⌨️ 快捷键说明

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