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 + -
显示快捷键?