head	1.6;
access;
symbols
	Version_2_1:1.3
	Version_2:1.1;
locks; strict;
comment	@ * @;


1.6
date	92.05.28.20.26.30;	author mer;	state Exp;
branches;
next	1.5;

1.5
date	92.02.25.21.45.09;	author mer;	state Exp;
branches;
next	1.4;

1.4
date	91.05.07.13.57.39;	author kemnitz;	state Exp;
branches;
next	1.3;

1.3
date	90.08.18.00.40.07;	author cimarron;	state Exp;
branches;
next	1.2;

1.2
date	90.08.17.08.51.17;	author cimarron;	state Exp;
branches;
next	1.1;

1.1
date	90.03.26.20.34.34;	author cimarron;	state Version_2;
branches;
next	;


desc
@@


1.6
log
@type TransactionIdData no long exists
@
text
@/* ----------------------------------------------------------------
 *   FILE
 *	xact.h
 *	
 *   DESCRIPTION
 *	postgres transaction system header
 *
 *   NOTES
 *	
 *   IDENTIFICATION
 *	$Header: /private/mer/pg.latest/src/lib/H/access/RCS/xact.h,v 1.5 1992/02/25 21:45:09 mer Exp mer $
 * ----------------------------------------------------------------
 */

#ifndef XactIncluded       /* include this file only once */
#define XactIncluded 1

#include <signal.h>

#include "access/xcxt.h"
#include "access/xlog.h"
#include "storage/ipci.h"
#include "tmp/miscadmin.h"
#include "tmp/portal.h"
#include "utils/log.h"
#include "utils/mcxt.h"

/* ----------------
 *	transaction state structure
 * ----------------
 */
typedef struct TransactionStateData {
    TransactionId	transactionIdData;
    CommandId		commandId;
    Time		startTime;
    int			state;
    int			blockState;
} TransactionStateData;

/* ----------------
 *	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		5

typedef TransactionStateData *TransactionState;

/* ----------------
 *	extern definitions
 * ----------------
 */
extern bool IsTransactionState ARGS(());
extern void OverrideTransactionSystem ARGS((bool flag));
extern TransactionId GetCurrentTransactionId ARGS(());
extern CommandId GetCurrentCommandId ARGS(());
extern Time GetCurrentTransactionStartTime ARGS(());
extern bool TransactionIdIsCurrentTransactionId ARGS((TransactionId xid));
extern bool CommandIdIsCurrentCommandId ARGS((CommandId cid));
extern void ClearCommandIdCounterOverflowFlag ARGS(());
extern void CommandCounterIncrement ARGS(());
extern void InitializeTransactionSystem ARGS(());
extern void AtStart_Cache ARGS(());
extern void AtStart_Locks ARGS(());
extern void AtStart_Memory ARGS(());
extern void RecordTransactionCommit ARGS(());
extern void AtCommit_Cache ARGS(());
extern void AtCommit_Locks ARGS(());
extern void AtCommit_Memory ARGS(());
extern void RecordTransactionAbort ARGS(());
extern void AtAbort_Cache ARGS(());
extern void AtAbort_Locks ARGS(());
extern void AtAbort_Memory ARGS(());
extern void StartTransaction ARGS(());
extern bool CurrentXactInProgress ARGS(());
extern void CommitTransaction ARGS(());
extern void AbortTransaction ARGS(());
extern void StartTransactionCommand ARGS(());
extern void CommitTransactionCommand ARGS(());
extern void AbortCurrentTransaction ARGS(());
extern void BeginTransactionBlock ARGS(());
extern void EndTransactionBlock ARGS(());
extern void AbortTransactionBlock ARGS(());
extern void UserErrorEndWithoutBegin ARGS(());
extern void UserErrorBeginAfterBegin ARGS(());
extern void UserErrorAbortWithoutBegin ARGS(());
extern void InternalErrorIllegalStateTransition ARGS(());
extern void FsaMachine ARGS(());
extern void InitializeTransactionState ARGS(());
extern void OverrideTransactionState ARGS(());
extern bool IsBlockTransactionState ARGS(());
extern bool IsOverrideTransactionState ARGS(());
extern void StartTransactionStateBlock ARGS(());
extern void StartTransactionStateCommand ARGS(());
extern void CommitTransactionStateCommand ARGS(());
extern void CommitTransactionStateBlock ARGS(());
extern void AbortCurrentTransactionState ARGS(());
extern void AbortTransactionStateBlock ARGS(());
extern void StartTransactionBlock ARGS(());
extern void CommitTransactionBlock ARGS(());

#endif XactIncluded
@


1.5
log
@add prototype for new routine in xact.c
@
text
@d11 1
a11 1
 *	$Header: /u/mer/pg/src/lib/H/access/RCS/xact.h,v 1.4 1991/05/07 13:57:39 kemnitz Exp mer $
d33 1
a33 1
    TransactionIdData	transactionIdData;
@


1.4
log
@got rid of superfluous includes.
@
text
@d11 1
a11 1
 *	$Header: RCS/xact.h,v 1.3 90/08/18 00:40:07 cimarron Exp $
d90 1
@


1.3
log
@eliminated less significant .h files
@
text
@d11 1
a11 1
 *	$Header: RCS/xact.h,v 1.2 90/08/17 08:51:17 cimarron Exp Locker: cimarron $
a18 2

#include "tmp/postgres.h"
@


1.2
log
@added pathnames to #include statements
@
text
@d11 1
a11 1
 *	$Header: RCS/xact.h,v 1.1 90/03/26 20:34:34 cimarron Version_2 Locker: cimarron $
a17 4
/* ----------------
 *	Include files (XXX clean these up!)
 * ----------------
 */
d20 1
a20 1
#include "tmp/c.h"
d25 1
a25 1
#include "tmp/pmod.h"
a26 2
#include "tmp/tim.h"
#include "tmp/xid.h"
@


1.1
log
@Initial revision
@
text
@d11 1
a11 1
 *	$Header$
d24 1
a24 1
#include "c.h"
d26 9
a34 9
#include "ipci.h"
#include "log.h"
#include "mcxt.h"
#include "pmod.h"
#include "portal.h"
#include "tim.h"
#include "xcxt.h"
#include "xid.h"
#include "xlog.h"
@
