head	1.8;
access;
symbols
	release_4_2:1.8
	aix_ok:1.7
	Version_2_1:1.3
	Version_2:1.1;
locks; strict;
comment	@ * @;


1.8
date	93.11.03.08.24.31;	author aoki;	state Exp;
branches;
next	1.7;

1.7
date	93.07.16.18.38.46;	author avi;	state Exp;
branches;
next	1.6;

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.8
log
@fix broken prs2 protos
remove rules/rlock.h, access/xcxt.h, access/newam.h (dead headers
  with residual dependencies)
@
text
@/* ----------------------------------------------------------------
 *   FILE
 *	xact.h
 *	
 *   DESCRIPTION
 *	postgres transaction system header
 *
 *   NOTES
 *	
 *   IDENTIFICATION
 *	$Header: /faerie/aoki/postgres/src/backend/access/RCS/xact.h,v 1.7 1993/07/16 18:38:46 avi Exp aoki $
 * ----------------------------------------------------------------
 */

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

#include <signal.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"
#include "utils/nabstime.h"

/* ----------------
 *	transaction state structure
 * ----------------
 */
typedef struct TransactionStateData {
    TransactionId	transactionIdData;
    CommandId		commandId;
    AbsoluteTime		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 AbsoluteTime 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.7
log
@time cleanup
@
text
@d11 1
a11 1
 *	$Header: /private/src/postgres/src/backend/access/RCS/xact.h,v 1.6 1992/05/28 20:26:30 mer Exp avi $
a19 1
#include "access/xcxt.h"
@


1.6
log
@type TransactionIdData no long exists
@
text
@d11 1
a11 1
 *	$Header: /private/mer/pg.latest/src/lib/H/access/RCS/xact.h,v 1.5 1992/02/25 21:45:09 mer Exp mer $
d27 1
d36 1
a36 1
    Time		startTime;
d73 1
a73 1
extern Time GetCurrentTransactionStartTime ARGS(());
@


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"
@
