diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-07-01 00:52:04 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-07-01 00:52:04 +0000 |
commit | 573a71a5da70d6e2503c8f53e3b4f26b3b6d738d (patch) | |
tree | 070f677b0043631518f83ce84ff201bf8fda700f /src/include/commands | |
parent | 4c9aa572fa2ee60e8ac557b866eccc7310df0a09 (diff) | |
download | postgresql-573a71a5da70d6e2503c8f53e3b4f26b3b6d738d.tar.gz postgresql-573a71a5da70d6e2503c8f53e3b4f26b3b6d738d.zip |
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.
Diffstat (limited to 'src/include/commands')
-rw-r--r-- | src/include/commands/async.h | 5 | ||||
-rw-r--r-- | src/include/commands/tablecmds.h | 7 | ||||
-rw-r--r-- | src/include/commands/trigger.h | 38 |
3 files changed, 12 insertions, 38 deletions
diff --git a/src/include/commands/async.h b/src/include/commands/async.h index 6429895fbdc..47bd91aaaa4 100644 --- a/src/include/commands/async.h +++ b/src/include/commands/async.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/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); diff --git a/src/include/commands/tablecmds.h b/src/include/commands/tablecmds.h index f9f03c1bd03..73021fbb91f 100644 --- a/src/include/commands/tablecmds.h +++ b/src/include/commands/tablecmds.h @@ -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 */ diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h index 9083c1395f2..f9e4b2a396e 100644 --- a/src/include/commands/trigger.h +++ b/src/include/commands/trigger.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); |