diff --git a/doc/TODO.detail/nulls b/doc/TODO.detail/nulls deleted file mode 100644 index 7ac282c972a2b0c1632887c59ce9a079be51da08..0000000000000000000000000000000000000000 --- a/doc/TODO.detail/nulls +++ /dev/null @@ -1,119 +0,0 @@ -From owner-pgsql-general@hub.org Fri Oct 9 18:22:09 1998 -Received: from hub.org (majordom@hub.org [209.47.148.200]) - by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id SAA04220 - for <maillist@candle.pha.pa.us>; Fri, 9 Oct 1998 18:22:08 -0400 (EDT) -Received: from localhost (majordom@localhost) - by hub.org (8.8.8/8.8.8) with SMTP id SAA26960; - Fri, 9 Oct 1998 18:18:29 -0400 (EDT) - (envelope-from owner-pgsql-general@hub.org) -Received: by hub.org (TLB v0.10a (1.23 tibbs 1997/01/09 00:29:32)); Fri, 09 Oct 1998 18:18:07 +0000 (EDT) -Received: (from majordom@localhost) - by hub.org (8.8.8/8.8.8) id SAA26917 - for pgsql-general-outgoing; Fri, 9 Oct 1998 18:18:04 -0400 (EDT) - (envelope-from owner-pgsql-general@postgreSQL.org) -X-Authentication-Warning: hub.org: majordom set sender to owner-pgsql-general@postgreSQL.org using -f -Received: from gecko.statsol.com (gecko.statsol.com [198.11.51.133]) - by hub.org (8.8.8/8.8.8) with ESMTP id SAA26904 - for <pgsql-general@postgresql.org>; Fri, 9 Oct 1998 18:17:46 -0400 (EDT) - (envelope-from statsol@statsol.com) -Received: from gecko (gecko [198.11.51.133]) - by gecko.statsol.com (8.9.0/8.9.0) with SMTP id SAA00557 - for <pgsql-general@postgresql.org>; Fri, 9 Oct 1998 18:18:00 -0400 (EDT) -Date: Fri, 9 Oct 1998 18:18:00 -0400 (EDT) -From: Steve Doliov <statsol@statsol.com> -X-Sender: statsol@gecko -To: pgsql-general@postgreSQL.org -Subject: Re: [GENERAL] Making NULLs visible. -Message-ID: <Pine.GSO.3.96.981009181716.545B-100000@gecko> -MIME-Version: 1.0 -Content-Type: TEXT/PLAIN; charset=US-ASCII -Sender: owner-pgsql-general@postgreSQL.org -Precedence: bulk -Status: RO - -On Fri, 9 Oct 1998, Bruce Momjian wrote: - -> [Charset iso-8859-1 unsupported, filtering to ASCII...] -> > > Yes, \ always outputs as \\, excepts someone changed it last week, and I -> > > am requesting a reversal. Do you like the \N if it is unique? -> > -> > Well, it's certainly clear, but could be confused with \n (newline). Can we -> > have \0 instead? -> -> Yes, but it is uppercase. \0 looks like an octal number to me, and I -> think we even output octals sometimes, don't we? -> - -my first suggestion may have been hare-brained, but why not just make the -specifics of the output user-configurable. So if the user chooses \0, so -be it, if the user chooses \N so be it, if the user likes NULL so be it. -but the option would only have one value per database at any given point -in time. so database x could use \N on tuesday and NULL on wednesday, but -database x could never have two references to the characters(s) used to -represent a null value. - -steve - - - - -From owner-pgsql-general@hub.org Sun Oct 11 17:31:08 1998 -Received: from renoir.op.net (root@renoir.op.net [209.152.193.4]) - by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id RAA20043 - for <maillist@candle.pha.pa.us>; Sun, 11 Oct 1998 17:31:02 -0400 (EDT) -Received: from hub.org (majordom@hub.org [209.47.148.200]) by renoir.op.net (o1/$ Revision: 1.18 $) with ESMTP id RAA03069 for <maillist@candle.pha.pa.us>; Sun, 11 Oct 1998 17:10:34 -0400 (EDT) -Received: from localhost (majordom@localhost) - by hub.org (8.8.8/8.8.8) with SMTP id QAA10856; - Sun, 11 Oct 1998 16:57:34 -0400 (EDT) - (envelope-from owner-pgsql-general@hub.org) -Received: by hub.org (TLB v0.10a (1.23 tibbs 1997/01/09 00:29:32)); Sun, 11 Oct 1998 16:53:35 +0000 (EDT) -Received: (from majordom@localhost) - by hub.org (8.8.8/8.8.8) id QAA10393 - for pgsql-general-outgoing; Sun, 11 Oct 1998 16:53:34 -0400 (EDT) - (envelope-from owner-pgsql-general@postgreSQL.org) -X-Authentication-Warning: hub.org: majordom set sender to owner-pgsql-general@postgreSQL.org using -f -Received: from mail1.panix.com (mail1.panix.com [166.84.0.212]) - by hub.org (8.8.8/8.8.8) with ESMTP id QAA10378 - for <pgsql-general@postgreSQL.org>; Sun, 11 Oct 1998 16:53:28 -0400 (EDT) - (envelope-from tomg@admin.nrnet.org) -Received: from mailhost.nrnet.org (root@mailhost.nrnet.org [166.84.192.39]) - by mail1.panix.com (8.8.8/8.8.8/PanixM1.3) with ESMTP id QAA16311 - for <pgsql-general@postgreSQL.org>; Sun, 11 Oct 1998 16:53:24 -0400 (EDT) -Received: from admin.nrnet.org (uucp@localhost) - by mailhost.nrnet.org (8.8.7/8.8.4) with UUCP - id QAA16345 for pgsql-general@postgreSQL.org; Sun, 11 Oct 1998 16:28:47 -0400 -Received: from localhost (tomg@localhost) - by admin.nrnet.org (8.8.7/8.8.7) with SMTP id QAA11569 - for <pgsql-general@postgreSQL.org>; Sun, 11 Oct 1998 16:28:41 -0400 -Date: Sun, 11 Oct 1998 16:28:41 -0400 (EDT) -From: Thomas Good <tomg@admin.nrnet.org> -To: pgsql-general@postgreSQL.org -Subject: Re: [GENERAL] Making NULLs visible. -In-Reply-To: <Pine.GSO.3.96.981009181716.545B-100000@gecko> -Message-ID: <Pine.LNX.3.96.981011161908.11556A-100000@admin.nrnet.org> -MIME-Version: 1.0 -Content-Type: TEXT/PLAIN; charset=US-ASCII -Sender: owner-pgsql-general@postgreSQL.org -Precedence: bulk -Status: RO - -Watching all this go by...as a guy who has to move alot of data -from legacy dbs to postgres, I've gotten used to \N being a null. - -My vote, if I were allowed to cast one, would be to have one null -and that would be the COPY command null. I have no difficulty -distinguishing a null from a newline... - -At the pgsql command prompt I would find seeing \N rather reassuring. -I've seen alot of these little guys. - - ---------- Sisters of Charity Medical Center ---------- - Department of Psychiatry - ---- - Thomas Good <tomg@q8.nrnet.org> - Coordinator, North Richmond C.M.H.C. Information Systems - 75 Vanderbilt Ave, Quarters 8 Phone: 718-354-5528 - Staten Island, NY 10304 Fax: 718-354-5056 - - - diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index 18d9567ab898adeaf2dcf59dd193f0fed7e2c803..c20a63fc6dcb1e5f5c46f35c54553dc0c97f2cb8 100644 --- a/src/backend/bootstrap/bootstrap.c +++ b/src/backend/bootstrap/bootstrap.c @@ -7,7 +7,7 @@ * Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.67 1999/09/18 19:06:27 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.68 1999/09/27 20:26:58 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -134,7 +134,6 @@ static char *relname; /* current relation name */ 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 diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c index d34b97c90df51698bec4a11153c7ea930d646521..ffbe98b97ff70542a55f0649e5f43f8a3906a983 100644 --- a/src/backend/commands/variable.c +++ b/src/backend/commands/variable.c @@ -2,7 +2,7 @@ * Routines for handling of 'SET var TO', * 'SHOW var' and 'RESET var' statements. * - * $Id: variable.c,v 1.25 1999/07/17 20:16:54 momjian Exp $ + * $Id: variable.c,v 1.26 1999/09/27 20:27:03 momjian Exp $ * */ @@ -11,11 +11,13 @@ #include "postgres.h" #include "access/xact.h" +#include "catalog/pg_shadow.h" #include "commands/variable.h" #include "miscadmin.h" #include "optimizer/internal.h" #include "utils/builtins.h" #include "utils/tqual.h" +#include "utils/trace.h" #ifdef MULTIBYTE #include "mb/pg_wchar.h" @@ -528,6 +530,36 @@ reset_timezone() return TRUE; } /* reset_timezone() */ +/* + * Pg_options + */ +static bool +parse_pg_options(const char *value) +{ + if (!superuser()) { + elog(ERROR, "Only users with superuser privilege 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 superuser privilege can set pg_options"); + } + read_pg_options(0); + return (TRUE); +} + /*-----------------------------------------------------------------------*/ struct VariableParsers @@ -568,6 +600,9 @@ struct VariableParsers { "XactIsoLevel", parse_XactIsoLevel, show_XactIsoLevel, reset_XactIsoLevel }, + { + "pg_options", parse_pg_options, show_pg_options, reset_pg_options + }, { NULL, NULL, NULL, NULL } diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c index 1cde72e6b2f9ccfac1660fe2ef91394ed260514a..281db5a5416d70ea65447d389d15568e732f5a44 100644 --- a/src/backend/utils/init/globals.c +++ b/src/backend/utils/init/globals.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.36 1999/07/17 20:18:08 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.37 1999/09/27 20:27:09 momjian Exp $ * * NOTES * Globals used all over the place should be declared here and not @@ -76,7 +76,6 @@ char DateFormat[20] = "%d-%m-%Y"; /* mjl: sizes! or better * malloc? XXX */ char FloatFormat[20] = "%f"; -bool disableFsync = false; bool allowSystemTableMods = false; int SortMem = 512; diff --git a/src/backend/utils/misc/trace.c b/src/backend/utils/misc/trace.c index 3d9cbe607de145d48dec4ce845bc85eb6b66975e..2a1fe5ab8d6759384ed0596fff5e191161660509 100644 --- a/src/backend/utils/misc/trace.c +++ b/src/backend/utils/misc/trace.c @@ -73,6 +73,7 @@ static char *opt_names[] = { "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 */ @@ -405,6 +406,16 @@ read_pg_options(SIGNAL_ARGS) 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 diff --git a/src/bin/psql/psqlHelp.h b/src/bin/psql/psqlHelp.h index f17995a2207c8401fdd223537c2d6b11b169240d..020d8e450e111f93c404450ac17af06e8f603d6a 100644 --- a/src/bin/psql/psqlHelp.h +++ b/src/bin/psql/psqlHelp.h @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: psqlHelp.h,v 1.74 1999/09/23 17:11:16 momjian Exp $ + * $Id: psqlHelp.h,v 1.75 1999/09/27 20:27:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -296,7 +296,7 @@ static struct _helpStruct QL_HELP[] = { {"reset", "set run-time environment back to default", "\ -\tRESET DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|\n\ +\tRESET DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|PG_OPTIONS|\n\ TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING"}, {"revoke", "revoke access control from a user or group", @@ -329,6 +329,7 @@ TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING"}, \tSET COST_INDEX TO #\n\ \tSET GEQO TO 'ON[=#]'|'OFF'\n\ \tSET KSQO TO 'ON'|'OFF'\n\ +\tSET PG_OPTIONS TO 'value'\n\ \tSET TIMEZONE 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\ @@ -340,7 +341,7 @@ TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING"}, {"show", "show current run-time environment", "\ -\tSHOW DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|\n\ +\tSHOW DATESTYLE|COST_HEAP|COST_INDEX|GEQO|KSQO|PG_OPTIONS|\n\ TIMEZONE|XACTISOLEVEL|CLIENT_ENCODING|SERVER_ENCODING"}, {"unlisten", "stop listening for notification on a condition name", diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index ecd567c364f12a7c6d7dc6161453de82a806dac3..12eb3f87bae754a5cb85395cb2ce8e8f8ab2b940 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -11,7 +11,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: miscadmin.h,v 1.41 1999/09/24 00:25:16 tgl Exp $ + * $Id: miscadmin.h,v 1.42 1999/09/27 20:27:26 momjian Exp $ * * NOTES * some of the information in this file will be moved to @@ -22,6 +22,8 @@ #ifndef MISCADMIN_H #define MISCADMIN_H +#include "utils/trace.h" + /***************************************************************************** * globals.h -- * *****************************************************************************/ @@ -93,7 +95,7 @@ extern char CTZName[]; extern char FloatFormat[]; extern char DateFormat[]; -extern bool disableFsync; +#define disableFsync pg_options[OPT_NOFSYNC] extern bool allowSystemTableMods; extern int SortMem; diff --git a/src/include/utils/trace.h b/src/include/utils/trace.h index 4bcdee3ae575a220c5f84529741067ce0475a36e..3cb2d9e28f1d7e18ebd7b2db0641da9877eb4ae5 100644 --- a/src/include/utils/trace.h +++ b/src/include/utils/trace.h @@ -26,6 +26,7 @@ char *tprintf_timestamp(void); 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); @@ -57,6 +58,7 @@ enum pg_option_enum { 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 */