mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
Nested transactions. There is still much left to do, especially on the
performance front, but with feature freeze upon us I think it's time to drive a stake in the ground and say that this will be in 7.5. Alvaro Herrera, with some help from Tom Lane.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/commands/async.h,v 1.24 2004/05/23 03:50:45 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/commands/async.h,v 1.25 2004/07/01 00:51:40 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -23,6 +23,9 @@ extern void Async_Unlisten(char *relname, int pid);
|
||||
/* perform (or cancel) outbound notify processing at transaction commit */
|
||||
extern void AtCommit_Notify(void);
|
||||
extern void AtAbort_Notify(void);
|
||||
extern void AtSubStart_Notify(void);
|
||||
extern void AtSubCommit_Notify(void);
|
||||
extern void AtSubAbort_Notify(void);
|
||||
|
||||
/* signal handler for inbound notifies (SIGUSR2) */
|
||||
extern void NotifyInterruptHandler(SIGNAL_ARGS);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.16 2004/05/05 04:48:47 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.17 2004/07/01 00:51:40 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -42,6 +42,9 @@ extern void register_on_commit_action(Oid relid, OnCommitAction action);
|
||||
extern void remove_on_commit_action(Oid relid);
|
||||
|
||||
extern void PreCommit_on_commit_actions(void);
|
||||
extern void AtEOXact_on_commit_actions(bool isCommit);
|
||||
extern void AtEOXact_on_commit_actions(bool isCommit, TransactionId xid);
|
||||
extern void AtEOSubXact_on_commit_actions(bool isCommit,
|
||||
TransactionId childXid,
|
||||
TransactionId parentXid);
|
||||
|
||||
#endif /* TABLECMDS_H */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/commands/trigger.h,v 1.45 2003/11/29 22:40:59 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/include/commands/trigger.h,v 1.46 2004/07/01 00:51:40 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -151,44 +151,12 @@ extern void ExecARUpdateTriggers(EState *estate,
|
||||
ItemPointer tupleid,
|
||||
HeapTuple newtuple);
|
||||
|
||||
|
||||
/*
|
||||
* Deferred trigger stuff
|
||||
*/
|
||||
typedef struct DeferredTriggerStatusData
|
||||
{
|
||||
Oid dts_tgoid;
|
||||
bool dts_tgisdeferred;
|
||||
} DeferredTriggerStatusData;
|
||||
|
||||
typedef struct DeferredTriggerStatusData *DeferredTriggerStatus;
|
||||
|
||||
typedef struct DeferredTriggerEventItem
|
||||
{
|
||||
Oid dti_tgoid;
|
||||
int32 dti_state;
|
||||
} DeferredTriggerEventItem;
|
||||
|
||||
typedef struct DeferredTriggerEventData *DeferredTriggerEvent;
|
||||
|
||||
typedef struct DeferredTriggerEventData
|
||||
{
|
||||
DeferredTriggerEvent dte_next; /* list link */
|
||||
int32 dte_event;
|
||||
Oid dte_relid;
|
||||
ItemPointerData dte_oldctid;
|
||||
ItemPointerData dte_newctid;
|
||||
int32 dte_n_items;
|
||||
/* dte_item is actually a variable-size array, of length dte_n_items */
|
||||
DeferredTriggerEventItem dte_item[1];
|
||||
} DeferredTriggerEventData;
|
||||
|
||||
|
||||
extern void DeferredTriggerInit(void);
|
||||
extern void DeferredTriggerBeginXact(void);
|
||||
extern void DeferredTriggerEndQuery(void);
|
||||
extern void DeferredTriggerEndXact(void);
|
||||
extern void DeferredTriggerAbortXact(void);
|
||||
extern void DeferredTriggerBeginSubXact(void);
|
||||
extern void DeferredTriggerEndSubXact(bool isCommit);
|
||||
|
||||
extern void DeferredTriggerSetState(ConstraintsSetStmt *stmt);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user