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;