aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2003-11-06 22:08:15 +0000
committerPeter Eisentraut <peter_e@gmx.net>2003-11-06 22:08:15 +0000
commit96889392e915e5c77384d274db2a2c42b684c274 (patch)
tree06f115dec005a18d591bf4a389391a84cf6cef00 /src/backend/utils
parent144a2ecd57590c6cce9981a2b28cee5f5805bd5d (diff)
downloadpostgresql-96889392e915e5c77384d274db2a2c42b684c274.tar.gz
postgresql-96889392e915e5c77384d274db2a2c42b684c274.zip
Implement isolation levels read uncommitted and repeatable read as acting
like the next higher one.
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/adt/ri_triggers.c4
-rw-r--r--src/backend/utils/misc/guc.c14
-rw-r--r--src/backend/utils/time/tqual.c4
3 files changed, 16 insertions, 6 deletions
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index d0e3e9c0817..7caca437449 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -17,7 +17,7 @@
*
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.63 2003/10/31 03:58:20 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.64 2003/11/06 22:08:15 petere Exp $
*
* ----------
*/
@@ -3073,7 +3073,7 @@ ri_PerformCheck(RI_QueryKey *qkey, void *qplan,
* rows under current snapshot that wouldn't be visible per the
* transaction snapshot).
*/
- if (XactIsoLevel == XACT_SERIALIZABLE)
+ if (IsXactIsoLevelSerializable)
{
useCurrentSnapshot = detectNewRows;
}
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index c3e9a0ec818..fd9def3e6cd 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.164 2003/10/18 22:59:09 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.165 2003/11/06 22:08:15 petere Exp $
*
*--------------------------------------------------------------------
*/
@@ -1346,7 +1346,7 @@ static struct config_string ConfigureNamesString[] =
{"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
gettext_noop("Sets the transaction isolation level of each new transaction."),
gettext_noop("Each SQL transaction has an isolation level, which "
- "can be either \"read committed\" or \"serializable\".")
+ "can be either \"read uncommitted\", \"read committed\", \"repeatable read\", or \"serializable\".")
},
&default_iso_level_string,
"read committed", assign_defaultxactisolevel, NULL
@@ -4238,11 +4238,21 @@ assign_defaultxactisolevel(const char *newval, bool doit, bool interactive)
if (doit)
DefaultXactIsoLevel = XACT_SERIALIZABLE;
}
+ else if (strcasecmp(newval, "repeatable read") == 0)
+ {
+ if (doit)
+ DefaultXactIsoLevel = XACT_REPEATABLE_READ;
+ }
else if (strcasecmp(newval, "read committed") == 0)
{
if (doit)
DefaultXactIsoLevel = XACT_READ_COMMITTED;
}
+ else if (strcasecmp(newval, "read uncommitted") == 0)
+ {
+ if (doit)
+ DefaultXactIsoLevel = XACT_READ_UNCOMMITTED;
+ }
else
return NULL;
return newval;
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index d7d22b77866..fa59e0f1752 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -16,7 +16,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.70 2003/10/01 21:30:52 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.71 2003/11/06 22:08:15 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -984,7 +984,7 @@ SetQuerySnapshot(void)
return;
}
- if (XactIsoLevel == XACT_SERIALIZABLE)
+ if (IsXactIsoLevelSerializable)
QuerySnapshot = SerializableSnapshot;
else
QuerySnapshot = GetSnapshotData(&QuerySnapshotData, false);