diff options
author | Joe Conway <mail@joeconway.com> | 2010-09-11 18:38:58 +0000 |
---|---|---|
committer | Joe Conway <mail@joeconway.com> | 2010-09-11 18:38:58 +0000 |
commit | 5eb15c9942a9bd6aaf712f2ab6175005e035168a (patch) | |
tree | 5795253ca2eeb8850761da17341ee062078894a0 /src/backend/executor/nodeModifyTable.c | |
parent | 262c71ab63d5781cd68b23d2058cbb45ad67a54c (diff) | |
download | postgresql-5eb15c9942a9bd6aaf712f2ab6175005e035168a.tar.gz postgresql-5eb15c9942a9bd6aaf712f2ab6175005e035168a.zip |
SERIALIZABLE transactions are actually implemented beneath the covers with
transaction snapshots, i.e. a snapshot registered at the beginning of
a transaction. Change variable naming and comments to reflect this reality
in preparation for a future, truly serializable mode, e.g.
Serializable Snapshot Isolation (SSI).
For the moment transaction snapshots are still used to implement
SERIALIZABLE, but hopefully not for too much longer. Patch by Kevin
Grittner and Dan Ports with review and some minor wording changes by me.
Diffstat (limited to 'src/backend/executor/nodeModifyTable.c')
-rw-r--r-- | src/backend/executor/nodeModifyTable.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 65414b92677..86fc016b50d 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/nodeModifyTable.c,v 1.9 2010/08/18 21:52:24 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/executor/nodeModifyTable.c,v 1.10 2010/09/11 18:38:56 joe Exp $ * *------------------------------------------------------------------------- */ @@ -310,7 +310,7 @@ ExecDelete(ItemPointer tupleid, * Note: if es_crosscheck_snapshot isn't InvalidSnapshot, we check that * the row to be deleted is visible to that snapshot, and throw a can't- * serialize error if not. This is a special-case behavior needed for - * referential integrity updates in serializable transactions. + * referential integrity updates in transaction-snapshot mode transactions. */ ldelete:; result = heap_delete(resultRelationDesc, tupleid, @@ -328,7 +328,7 @@ ldelete:; break; case HeapTupleUpdated: - if (IsXactIsoLevelSerializable) + if (IsolationUsesXactSnapshot()) ereport(ERROR, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), errmsg("could not serialize access due to concurrent update"))); @@ -499,7 +499,7 @@ lreplace:; * Note: if es_crosscheck_snapshot isn't InvalidSnapshot, we check that * the row to be updated is visible to that snapshot, and throw a can't- * serialize error if not. This is a special-case behavior needed for - * referential integrity updates in serializable transactions. + * referential integrity updates in transaction-snapshot mode transactions. */ result = heap_update(resultRelationDesc, tupleid, tuple, &update_ctid, &update_xmax, @@ -516,7 +516,7 @@ lreplace:; break; case HeapTupleUpdated: - if (IsXactIsoLevelSerializable) + if (IsolationUsesXactSnapshot()) ereport(ERROR, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), errmsg("could not serialize access due to concurrent update"))); |