new patches... - Mailing list pgsql-hackers

From Massimo Dal Zotto
Subject new patches...
Date
Msg-id 199906142032.WAA20907@nikita.wizard.net
Whole thread Raw
Responses Re: new patches...
List pgsql-hackers
Hi,

I have added the pg_options variable to the SET command. It can be executed
only by the superuser and is intended mainly as a debugging aid.
I have also moved the disableFsync variable to the pg_options array, so it
can now be set in the pg_options file or interactively with the commands:
  SET pg_options to 'nofsinc=1';  SET pg_options to 'nofsinc=0';

There are obviously also the SHOW and RESET pg_options commands.


*** src/backend/commands/variable.c.orig    Wed May 26 09:02:48 1999
--- src/backend/commands/variable.c    Mon Jun 14 20:45:58 1999
***************
*** 15,20 ****
--- 15,22 ---- #include "commands/variable.h" #include "utils/builtins.h" #include "optimizer/internal.h"
+ #include "utils/trace.h"
+ #include "catalog/pg_shadow.h" #include "access/xact.h" #ifdef MULTIBYTE #include "mb/pg_wchar.h"
***************
*** 581,589 ****     ExecutorLimit(ALL_TUPLES);     return (TRUE); }
-  #endif  /*-----------------------------------------------------------------------*/  struct VariableParsers
--- 583,622 ----     ExecutorLimit(ALL_TUPLES);     return (TRUE); } #endif 
+ /*
+  *
+  * Pg_options
+  *
+  */
+ static bool
+ parse_pg_options(const char *value)
+ {
+     if (!superuser()) {
+         elog(ERROR, "Only users with Postgres superuser can set pg_options");
+     }
+     parse_options((char *) value, TRUE);
+     return (TRUE);
+ }
+ 
+ static bool
+ show_pg_options(void)
+ {
+     show_options();
+     return (TRUE);
+ }
+ 
+ static bool
+ reset_pg_options(void)
+ {
+     if (!superuser()) {
+         elog(ERROR, "Only users with Postgres superuser can set pg_options");
+     }
+     read_pg_options(0);
+     return (TRUE);
+ }
+  /*-----------------------------------------------------------------------*/  struct VariableParsers
***************
*** 629,634 ****
--- 662,670 ----         "query_limit", parse_query_limit, show_query_limit, reset_query_limit     }, #endif
+     {
+         "pg_options", parse_pg_options, show_pg_options, reset_pg_options
+     },     {         NULL, NULL, NULL, NULL     }
*** src/backend/utils/init/globals.c.orig    Wed May 26 09:05:49 1999
--- src/backend/utils/init/globals.c    Mon Jun 14 20:56:34 1999
***************
*** 82,88 ****                                                  * malloc? XXX */ char        FloatFormat[20] = "%f"; 
! bool        disableFsync = false; bool        allowSystemTableMods = false; int            SortMem = 512; 
--- 82,88 ----                                                  * malloc? XXX */ char        FloatFormat[20] = "%f"; 
! /* bool        disableFsync = false; */ bool        allowSystemTableMods = false; int            SortMem = 512; 
*** src/include/miscadmin.h.orig    Wed May 26 09:06:39 1999
--- src/include/miscadmin.h    Mon Jun 14 20:01:27 1999
***************
*** 22,27 ****
--- 22,29 ---- #ifndef MISCADMIN_H #define MISCADMIN_H 
+ #include "utils/trace.h"
+  /*****************************************************************************  *      globals.h --
                                          *
*****************************************************************************/
***************
*** 93,99 **** extern char FloatFormat[]; extern char DateFormat[]; 
! extern bool disableFsync; extern bool allowSystemTableMods; extern int    SortMem; 
--- 95,103 ---- extern char FloatFormat[]; extern char DateFormat[]; 
! /* extern bool disableFsync; */
! #define disableFsync    pg_options[OPT_NOFSYNC]
!  extern bool allowSystemTableMods; extern int    SortMem; 
*** src/bin/psql/psqlHelp.h.orig    Fri Jun  4 09:00:17 1999
--- src/bin/psql/psqlHelp.h    Mon Jun 14 20:17:45 1999
***************
*** 297,303 ****         "set run-time environment back to default",     "\ \tRESET
DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|QUERY_LIMIT|\n\
! TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING"},     {"revoke",         "revoke access control from a user or
group",    "\
 
--- 297,303 ----         "set run-time environment back to default",     "\ \tRESET
DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|QUERY_LIMIT|\n\
! \t  TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING|PG_OPTIONS"},     {"revoke",         "revoke access control
froma user or group",     "\
 
***************
*** 331,336 ****
--- 331,337 ---- \tSET KSQO TO 'ON'|'OFF'\n\ \tSET QUERY_LIMIT TO #\n\ \tSET TIMEZONE TO 'value'\n\
+ \tSET PG_OPTIONS TO 'value'\n\ \tSET TRANSACTION ISOLATION LEVEL 'SERIALIZABLE'|'READ COMMITTED'\n\ \tSET
CLIENT_ENCODING|NAMESTO 'EUC_JP'|'SJIS'|'EUC_CN'|'EUC_KR'|'EUC_TW'|\n\ \t
'BIG5'|'MULE_INTERNAL'|'LATIN1'|'LATIN2'|'LATIN3'|'LATIN4'|'LATIN5'|\n\
***************
*** 342,348 ****         "show current run-time environment",     "\ \tSHOW
DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|QUERY_LIMIT|\n\
! TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING"},     {"unlisten",         "stop listening for notification on
acondition name",     "\
 
--- 343,349 ----         "show current run-time environment",     "\ \tSHOW
DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|QUERY_LIMIT|\n\
! \t  TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING|PG_OPTIONS"},     {"unlisten",         "stop listening for
notificationon a condition name",     "\
 
*** src/include/utils/trace.h.orig    Sat Jun 12 22:45:23 1999
--- src/include/utils/trace.h    Mon Jun 14 20:50:56 1999
***************
*** 30,38 ****
--- 30,39 ---- extern int    tprintf(int flag, const char *fmt,...); extern int    eprintf(const char *fmt,...); extern
voidwrite_syslog(int level, char *line);
 
+ extern void show_options(void); extern void parse_options(char *str, bool secure); extern void
read_pg_options(SIGNAL_ARGS); /*  * Trace options, used as index into pg_options.  * Must match the constants in
pg_options[].
***************
*** 61,66 ****
--- 61,67 ----     TRACE_LOCKRELATION,     OPT_LOCKREADPRIORITY,        /* lock priority, see lock.c */
OPT_DEADLOCKTIMEOUT,       /* deadlock timeout, see proc.c */
 
+     OPT_NOFSYNC,                /* turn fsync off */     OPT_SYSLOG,                    /* use syslog for error
messages*/     OPT_HOSTLOOKUP,                /* enable hostname lookup in ps_status */     OPT_SHOWPORTNUMBER,
  /* show port number in ps_status */
 
*** src/backend/utils/misc/trace.c.orig    Sat Jun 12 22:47:32 1999
--- src/backend/utils/misc/trace.c    Mon Jun 14 20:50:06 1999
***************
*** 70,75 ****
--- 70,76 ----     "lock_debug_relid",     "lock_read_priority",        /* lock priority, see lock.c */
"deadlock_timeout",           /* deadlock timeout, see proc.c */
 
+     "nofsync",                    /* turn fsync off */     "syslog",                    /* use syslog for error
messages*/     "hostlookup",                /* enable hostname lookup in ps_status */     "showportnumber",
/*show port number in ps_status */
 
***************
*** 407,412 ****
--- 407,422 ----     close(fd); } 
+ void
+ show_options(void)
+ {
+     int        i;
+ 
+     for (i=0; i<NUM_PG_OPTIONS; i++) {
+         elog(NOTICE, "%s=%d", opt_names[i], pg_options[i]);
+     }
+ }
+  /*  * Local Variables:  *  tab-width: 4
*** src/backend/bootstrap/bootstrap.c.orig    Wed May 26 09:02:25 1999
--- src/backend/bootstrap/bootstrap.c    Mon Jun 14 20:06:00 1999
***************
*** 182,188 **** Form_pg_attribute attrtypes[MAXATTR];    /* points to attribute info */ static char *values[MAXATTR];
 /* cooresponding attribute values */ int            numattr;            /* number of attributes for cur. rel */
 
! extern bool disableFsync;        /* do not fsync the database */  int            DebugMode; static GlobalMemory nogc
=(GlobalMemory) NULL; /* special no-gc mem
 
--- 182,188 ---- Form_pg_attribute attrtypes[MAXATTR];    /* points to attribute info */ static char *values[MAXATTR];
 /* cooresponding attribute values */ int            numattr;            /* number of attributes for cur. rel */
 
! /* extern bool disableFsync; */        /* do not fsync the database */  int            DebugMode; static GlobalMemory
nogc= (GlobalMemory) NULL; /* special no-gc mem
 


-- 
Massimo Dal Zotto

+----------------------------------------------------------------------+
|  Massimo Dal Zotto               email: dz@cs.unitn.it               |
|  Via Marconi, 141                phone: ++39-0461534251              |
|  38057 Pergine Valsugana (TN)      www: http://www.cs.unitn.it/~dz/  |
|  Italy                             pgp: finger dz@tango.cs.unitn.it  |
+----------------------------------------------------------------------+


pgsql-hackers by date:

Previous
From: wieck@debis.com (Jan Wieck)
Date:
Subject: Re: [HACKERS] regress.sh
Next
From: Massimo Dal Zotto
Date:
Subject: Re: [HACKERS] new patch