diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2001-06-30 22:03:26 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2001-06-30 22:03:26 +0000 |
commit | 10e9cd22991b352685fe49cfa92dbcd72048c711 (patch) | |
tree | 44a564294b6797f8ce8cb6422ad979cafb71e33e /src/backend/utils/misc/guc.c | |
parent | e4a40cc35345679cc32b5fd11bc2b9c20f631de9 (diff) | |
download | postgresql-10e9cd22991b352685fe49cfa92dbcd72048c711.tar.gz postgresql-10e9cd22991b352685fe49cfa92dbcd72048c711.zip |
Allow default transaction isolation level (a.k.a. set session
characteristics) to be set through GUC.
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r-- | src/backend/utils/misc/guc.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index c38d98d3911..96dc8399e1c 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -4,7 +4,7 @@ * Support for grand unified configuration scheme, including SET * command, configuration file, and command line options. * - * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.43 2001/06/27 23:31:39 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.44 2001/06/30 22:03:26 petere Exp $ * * Copyright 2000 by PostgreSQL Global Development Group * Written by Peter Eisentraut <peter_e@gmx.net>. @@ -51,6 +51,11 @@ extern char *Syslog_ident; static bool check_facility(const char *facility); #endif +static char *default_iso_level_string; + +static bool check_defaultxactisolevel(const char *value); +static void assign_defaultxactisolevel(const char *value); + /* * Debugging options */ @@ -355,6 +360,9 @@ static struct config_real static struct config_string ConfigureNamesString[] = { + {"default_transaction_isolation", PGC_USERSET, &default_iso_level_string, + "read committed", check_defaultxactisolevel, assign_defaultxactisolevel}, + {"dynamic_library_path", PGC_SUSET, &Dynamic_library_path, "$libdir", NULL, NULL}, @@ -1092,3 +1100,25 @@ check_facility(const char *facility) } #endif + + + +static bool +check_defaultxactisolevel(const char *value) +{ + return (strcasecmp(value, "read committed") == 0 + || strcasecmp(value, "serializable") == 0) + ? true : false; +} + + +static void +assign_defaultxactisolevel(const char *value) +{ + if (strcasecmp(value, "serializable") == 0) + DefaultXactIsoLevel = XACT_SERIALIZABLE; + else if (strcasecmp(value, "read committed") == 0) + DefaultXactIsoLevel = XACT_READ_COMMITTED; + else + elog(ERROR, "bogus transaction isolation level"); +} |