Index: doc/src/sgml/runtime.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v
retrieving revision 1.315
diff -c -c -r1.315 runtime.sgml
*** doc/src/sgml/runtime.sgml 23 Apr 2005 03:27:40 -0000 1.315
--- doc/src/sgml/runtime.sgml 6 May 2005 22:48:41 -0000
***************
*** 3224,3229 ****
--- 3224,3247 ----
+
+
+ force read-only transaction
+
+
+ server_read_only> configuration parameter
+
+
+ server_read_only (boolean)
+
+
+ This parameter behaves just like default_read_only>
+ except it can only be set from postgresql.conf> and is server-wide.
+ The default is false (read/write).
+
+
+
+
statement_timeout (integer)
Index: src/backend/executor/execMain.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/execMain.c,v
retrieving revision 1.248
diff -c -c -r1.248 execMain.c
*** src/backend/executor/execMain.c 6 May 2005 17:24:53 -0000 1.248
--- src/backend/executor/execMain.c 6 May 2005 22:48:42 -0000
***************
*** 130,136 ****
* If the transaction is read-only, we need to check if any writes are
* planned to non-temporary tables.
*/
! if (XactReadOnly && !explainOnly)
ExecCheckXactReadOnly(queryDesc->parsetree);
/*
--- 130,136 ----
* If the transaction is read-only, we need to check if any writes are
* planned to non-temporary tables.
*/
! if ( (XactReadOnly || ServerReadOnly) && !explainOnly)
ExecCheckXactReadOnly(queryDesc->parsetree);
/*
Index: src/backend/tcop/utility.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/tcop/utility.c,v
retrieving revision 1.236
diff -c -c -r1.236 utility.c
*** src/backend/tcop/utility.c 28 Apr 2005 21:47:15 -0000 1.236
--- src/backend/tcop/utility.c 6 May 2005 22:48:45 -0000
***************
*** 265,271 ****
static void
check_xact_readonly(Node *parsetree)
{
! if (!XactReadOnly)
return;
/*
--- 265,271 ----
static void
check_xact_readonly(Node *parsetree)
{
! if (!XactReadOnly && !ServerReadOnly)
return;
/*
Index: src/backend/utils/misc/guc.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v
retrieving revision 1.261
diff -c -c -r1.261 guc.c
*** src/backend/utils/misc/guc.c 1 May 2005 18:56:19 -0000 1.261
--- src/backend/utils/misc/guc.c 6 May 2005 22:48:48 -0000
***************
*** 142,147 ****
--- 142,149 ----
bool default_with_oids = false;
+ bool ServerReadOnly = false;
+
int log_min_error_statement = PANIC;
int log_min_messages = NOTICE;
int client_min_messages = NOTICE;
***************
*** 794,799 ****
--- 796,809 ----
false, assign_transaction_read_only, NULL
},
{
+ {"server_read_only", PGC_SIGHUP, CLIENT_CONN_STATEMENT,
+ gettext_noop("Forces all transactions to be read-only."),
+ NULL
+ },
+ &ServerReadOnly,
+ false, NULL, NULL
+ },
+ {
{"add_missing_from", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
gettext_noop("Automatically adds missing table references to FROM clauses."),
NULL
Index: src/backend/utils/misc/postgresql.conf.sample
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/misc/postgresql.conf.sample,v
retrieving revision 1.140
diff -c -c -r1.140 postgresql.conf.sample
*** src/backend/utils/misc/postgresql.conf.sample 21 Apr 2005 19:18:13 -0000 1.140
--- src/backend/utils/misc/postgresql.conf.sample 6 May 2005 22:48:48 -0000
***************
*** 278,283 ****
--- 278,284 ----
#check_function_bodies = true
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = false
+ #server_read_only = false
#statement_timeout = 0 # 0 is disabled, in milliseconds
# - Locale and Formatting -
Index: src/include/postmaster/postmaster.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/postmaster/postmaster.h,v
retrieving revision 1.9
diff -c -c -r1.9 postmaster.h
*** src/include/postmaster/postmaster.h 31 Dec 2004 22:03:39 -0000 1.9
--- src/include/postmaster/postmaster.h 6 May 2005 22:48:49 -0000
***************
*** 34,40 ****
extern HANDLE PostmasterHandle;
#endif
-
extern int PostmasterMain(int argc, char *argv[]);
extern void ClosePostmasterPorts(bool am_syslogger);
--- 34,39 ----
Index: src/include/utils/guc.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/utils/guc.h,v
retrieving revision 1.60
diff -c -c -r1.60 guc.h
*** src/include/utils/guc.h 25 Mar 2005 16:17:28 -0000 1.60
--- src/include/utils/guc.h 6 May 2005 22:48:49 -0000
***************
*** 121,126 ****
--- 121,128 ----
extern bool default_with_oids;
+ extern bool ServerReadOnly;
+
extern int log_min_error_statement;
extern int log_min_messages;
extern int client_min_messages;