diff options
Diffstat (limited to 'src/backend/utils/adt')
-rw-r--r-- | src/backend/utils/adt/ri_triggers.c | 17 | ||||
-rw-r--r-- | src/backend/utils/adt/txid.c | 6 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index 4cd84876532..59f7e497955 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -15,7 +15,7 @@ * * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.107 2008/03/26 21:10:39 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.108 2008/05/12 20:02:02 alvherre Exp $ * * ---------- */ @@ -2756,12 +2756,13 @@ RI_Initial_Check(Trigger *trigger, Relation fk_rel, Relation pk_rel) /* * Run the plan. For safety we force a current snapshot to be used. (In * serializable mode, this arguably violates serializability, but we - * really haven't got much choice.) We need at most one tuple returned, - * so pass limit = 1. + * really haven't got much choice.) We don't need to register the + * snapshot, because SPI_execute_snapshot will see to it. We need at most + * one tuple returned, so pass limit = 1. */ spi_result = SPI_execute_snapshot(qplan, NULL, NULL, - CopySnapshot(GetLatestSnapshot()), + GetLatestSnapshot(), InvalidSnapshot, true, false, 1); @@ -3311,13 +3312,15 @@ ri_PerformCheck(RI_QueryKey *qkey, SPIPlanPtr qplan, * caller passes detectNewRows == false then it's okay to do the query * with the transaction snapshot; otherwise we use a current snapshot, and * tell the executor to error out if it finds any rows under the current - * snapshot that wouldn't be visible per the transaction snapshot. + * snapshot that wouldn't be visible per the transaction snapshot. Note + * that SPI_execute_snapshot will register the snapshots, so we don't need + * to bother here. */ if (IsXactIsoLevelSerializable && detectNewRows) { CommandCounterIncrement(); /* be sure all my own work is visible */ - test_snapshot = CopySnapshot(GetLatestSnapshot()); - crosscheck_snapshot = CopySnapshot(GetTransactionSnapshot()); + test_snapshot = GetLatestSnapshot(); + crosscheck_snapshot = GetTransactionSnapshot(); } else { diff --git a/src/backend/utils/adt/txid.c b/src/backend/utils/adt/txid.c index ae952d2a103..efccbd8f67c 100644 --- a/src/backend/utils/adt/txid.c +++ b/src/backend/utils/adt/txid.c @@ -14,7 +14,7 @@ * Author: Jan Wieck, Afilias USA INC. * 64-bit txids: Marko Kreen, Skype Technologies * - * $PostgreSQL: pgsql/src/backend/utils/adt/txid.c,v 1.6 2008/03/26 18:48:59 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/txid.c,v 1.7 2008/05/12 20:02:02 alvherre Exp $ * *------------------------------------------------------------------------- */ @@ -362,9 +362,9 @@ txid_current_snapshot(PG_FUNCTION_ARGS) TxidEpoch state; Snapshot cur; - cur = ActiveSnapshot; + cur = GetActiveSnapshot(); if (cur == NULL) - elog(ERROR, "txid_current_snapshot: ActiveSnapshot == NULL"); + elog(ERROR, "no active snapshot set"); load_xid_epoch(&state); |