aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>1999-12-10 12:34:15 +0000
committerJan Wieck <JanWieck@Yahoo.com>1999-12-10 12:34:15 +0000
commit62c42a05a214920ce909fe7e59653eec70ef3e11 (patch)
tree92a8259a13805e0ef48097cc73bb8b682d7e20aa /src/backend/utils
parentd31ff14ed871da4deff2f47486ebc0df3b1b6461 (diff)
downloadpostgresql-62c42a05a214920ce909fe7e59653eec70ef3e11.tar.gz
postgresql-62c42a05a214920ce909fe7e59653eec70ef3e11.zip
Added global variable to have RI triggers override
time qualification of HeapTupleSatisfiesSnapshot() Jan
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/adt/ri_triggers.c11
-rw-r--r--src/backend/utils/time/tqual.c10
2 files changed, 19 insertions, 2 deletions
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index a9b5c7cf2d0..323c1050a6f 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -6,7 +6,7 @@
*
* 1999 Jan Wieck
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.9 1999/12/08 20:41:22 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.10 1999/12/10 12:34:13 wieck Exp $
*
* ----------
*/
@@ -163,6 +163,7 @@ RI_FKey_check (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -489,6 +490,7 @@ RI_FKey_cascade_del (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -686,6 +688,7 @@ RI_FKey_cascade_upd (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -911,6 +914,7 @@ RI_FKey_restrict_del (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -1118,6 +1122,7 @@ RI_FKey_restrict_upd (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -1333,6 +1338,7 @@ RI_FKey_setnull_del (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -1540,6 +1546,7 @@ RI_FKey_setnull_upd (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -1758,6 +1765,7 @@ RI_FKey_setdefault_del (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
@@ -2005,6 +2013,7 @@ RI_FKey_setdefault_upd (FmgrInfo *proinfo)
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
+ ReferentialIntegritySnapshotOverride = true;
/* ----------
* Check that this is a valid trigger call on the right time and event.
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index 97080e010f9..4a96c5736cf 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.32 1999/10/06 21:58:11 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.33 1999/12/10 12:34:14 wieck Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,6 +24,8 @@ Snapshot SnapshotDirty = &SnapshotDirtyData;
Snapshot QuerySnapshot = NULL;
Snapshot SerializableSnapshot = NULL;
+bool ReferentialIntegritySnapshotOverride = false;
+
/*
* XXX Transaction system override hacks start here
*/
@@ -493,6 +495,9 @@ HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot)
if (AMI_OVERRIDE)
return true;
+ if (ReferentialIntegritySnapshotOverride)
+ return HeapTupleSatisfiesNow(tuple);
+
if (!(tuple->t_infomask & HEAP_XMIN_COMMITTED))
{
if (tuple->t_infomask & HEAP_XMIN_INVALID)
@@ -606,6 +611,9 @@ void
SetQuerySnapshot(void)
{
+ /* Initialize snapshot overriding to false */
+ ReferentialIntegritySnapshotOverride = false;
+
/* 1st call in xaction */
if (SerializableSnapshot == NULL)
{