new patches...

From: Massimo Dal Zotto <dz(at)cs(dot)unitn(dot)it>
To: hackers(at)postgreSQL(dot)org (PostgreSQL Hackers), maillist(at)candle(dot)pha(dot)pa(dot)us (Bruce Momjian)
Subject: new patches...
Date: 1999-06-14 20:32:50
Message-ID: 199906142032.WAA20907@nikita.wizard.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 from a 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|NAMES TO '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 a condition 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 notification on 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 void write_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(at)cs(dot)unitn(dot)it |
| Via Marconi, 141 phone: ++39-0461534251 |
| 38057 Pergine Valsugana (TN) www: http://www.cs.unitn.it/~dz/ |
| Italy pgp: finger dz(at)tango(dot)cs(dot)unitn(dot)it |
+----------------------------------------------------------------------+

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Massimo Dal Zotto 1999-06-14 20:55:03 Re: [HACKERS] new patch
Previous Message Jan Wieck 1999-06-14 20:14:03 Re: [HACKERS] regress.sh