aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2000-07-12 17:38:53 +0000
committerPeter Eisentraut <peter_e@gmx.net>2000-07-12 17:38:53 +0000
commit648677c3a2cbfb3e70da33c7131f0c6390ff2579 (patch)
tree35220071962eadcd71273b277530635097160d3d /src
parentcbdaa27f9798bfeb3bd04afadb5dccdcda361de3 (diff)
downloadpostgresql-648677c3a2cbfb3e70da33c7131f0c6390ff2579.tar.gz
postgresql-648677c3a2cbfb3e70da33c7131f0c6390ff2579.zip
Add assert checking to GUC ("debug_assertions")
Rename settings net_server to tcpip_socket, max_backends to max_connections Add --help and --version to postmaster, reformat help output
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c125
-rw-r--r--src/backend/tcop/postgres.c10
-rw-r--r--src/backend/utils/misc/guc.c13
-rw-r--r--src/include/c.h4
4 files changed, 100 insertions, 52 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 580786c2e69..fe6b7b14557 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.154 2000/07/09 13:14:05 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.155 2000/07/12 17:38:42 petere Exp $
*
* NOTES
*
@@ -280,11 +280,6 @@ void GetCharSetByHost(char *, int, char *);
#endif
-#ifdef USE_ASSERT_CHECKING
-
-int assert_enabled = 1;
-
-#endif
static void
checkDataDir(const char *DataDir)
@@ -387,13 +382,46 @@ PostmasterMain(int argc, char *argv[])
* will occur.
*/
opterr = 1;
- while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF)
+ while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:?")) != EOF)
{
- if (opt == 'D')
+ switch(opt)
{
- if (DataDir)
- free(DataDir);
- DataDir = strdup(optarg);
+ case 'D':
+ if (DataDir)
+ free(DataDir);
+ DataDir = strdup(optarg);
+ break;
+
+ case '-':
+ {
+ char *name, *value;
+
+ ParseLongOption(optarg, &name, &value);
+ if (strcmp(name, "help")==0)
+ {
+ usage(progname);
+ exit(0);
+ }
+ else if (strcmp(name, "version")==0)
+ {
+ puts("postmaster (PostgreSQL) " PG_VERSION);
+ exit(0);
+ }
+ break;
+ }
+
+ case '?':
+ if (strcmp(argv[optind - 1], "-?") == 0)
+ {
+ usage(progname);
+ exit(0);
+ }
+ else
+ {
+ fprintf(stderr, "Try -? for help.\n");
+ exit(1);
+ }
+ break;
}
}
@@ -403,21 +431,15 @@ PostmasterMain(int argc, char *argv[])
ProcessConfigFile(PGC_POSTMASTER);
IgnoreSystemIndexes(false);
- while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF)
+ while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:?")) != EOF)
{
switch (opt)
{
case 'A':
#ifndef USE_ASSERT_CHECKING
- fprintf(stderr, "Assert checking is not enabled\n");
+ fprintf(stderr, "Assert checking is not compiled in\n");
#else
-
- /*
- * Pass this option also to each backend.
- */
assert_enabled = atoi(optarg);
- strcat(ExtraOptions, " -A ");
- strcat(ExtraOptions, optarg);
#endif
break;
case 'a':
@@ -525,14 +547,24 @@ PostmasterMain(int argc, char *argv[])
free(value);
break;
}
+
default:
- /* usage() never returns */
- usage(progname);
- break;
+ /* shouldn't get here */
+ fprintf(stderr, "Try -? for help.\n");
+ exit(1);
}
}
/*
+ * Non-option switch arguments don't exist.
+ */
+ if (optind < argc)
+ {
+ fprintf(stderr, "%s: invalid argument -- %s\n", progname, argv[optind]);
+ exit(1);
+ }
+
+ /*
* Check for invalid combinations of switches
*/
if (NBuffers < 2 * MaxBackends || NBuffers < 16)
@@ -543,7 +575,7 @@ PostmasterMain(int argc, char *argv[])
* for lack of buffers. The specific choices here are somewhat
* arbitrary.
*/
- fprintf(stderr, "%s: -B must be at least twice -N and at least 16.\n",
+ fprintf(stderr, "%s: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.\n",
progname);
exit(1);
}
@@ -717,30 +749,43 @@ pmdaemonize(int argc, char *argv[])
on_proc_exit(UnlinkPidFile, NULL);
}
+
+
+/*
+ * Print out help message
+ */
static void
usage(const char *progname)
{
- fprintf(stderr, "usage: %s [options]\n", progname);
+ printf("%s is the PostgreSQL server.\n\n", progname);
+ printf("Usage:\n %s [options]\n\n", progname);
+ printf("Options:\n");
#ifdef USE_ASSERT_CHECKING
- fprintf(stderr, "\t-A [1|0]\tenable/disable runtime assert checking\n");
+ printf(" -A 1|0 enable/disable runtime assert checking\n");
#endif
- fprintf(stderr, "\t-B nbufs\tset number of shared buffers\n");
- fprintf(stderr, "\t-D datadir\tset data directory\n");
- fprintf(stderr, "\t-S \t\tsilent mode (disassociate from tty)\n");
- fprintf(stderr, "\t-a system\tuse this authentication system\n");
- fprintf(stderr, "\t-b backend\tuse a specific backend server executable\n");
- fprintf(stderr, "\t-d [1-5]\tset debugging level\n");
- fprintf(stderr, "\t-i \t\tlisten on TCP/IP sockets as well as Unix domain socket\n");
+ printf(" -B <buffers> number of shared buffers\n");
+ printf(" -d 1-5 debugging level\n");
+ printf(" -D <directory> database directory\n");
+ printf(" -F turn fsync off\n");
+ printf(" -i listen on TCP/IP sockets\n");
#ifdef USE_SSL
- fprintf(stderr, " \t-l \t\tfor TCP/IP sockets, listen only on SSL connections\n");
+ printf(" -l listen only on SSL connections (EXPERIMENTAL)\n");
#endif
- fprintf(stderr, "\t-N nprocs\tset max number of backends (1..%d, default %d)\n",
+ printf(" -N <number> maximum number of allowed connections (1..%d, default %d)\n",
MAXBACKENDS, DEF_MAXBACKENDS);
- fprintf(stderr, "\t-n \t\tdon't reinitialize shared memory after abnormal exit\n");
- fprintf(stderr, "\t-o option\tpass 'option' to each backend servers\n");
- fprintf(stderr, "\t-p port\tspecify port for postmaster to listen on\n");
- fprintf(stderr, "\t-s \t\tsend SIGSTOP to all backend servers if one dies\n");
- exit(1);
+ printf(" -o <option> pass `option' to each backend server\n");
+ printf(" -p <port> port number to listen on\n");
+ printf(" -S silent mode (dissociate from tty)\n");
+
+ printf("\nDeveloper options:\n");
+ printf(" -n don't reinitialize shared memory after abnormal exit\n");
+ printf(" -s send SIGSTOP to all backend servers if one dies\n");
+
+ printf("\nPlease read the documentation for the complete list of runtime\n"
+ "configuration settings and how to set them on the command line or in\n"
+ "the configuration file.\n\n");
+
+ printf("Report bugs to <pgsql-bugs@postgresql.org>.\n");
}
static int
@@ -1231,7 +1276,7 @@ reset_shared(int port)
/*
- * set flag is SIGHUP was detected so config file can be reread in
+ * Set flag if SIGHUP was detected so config file can be reread in
* main loop
*/
static void
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 3c672d8f4b2..fce4e2cc283 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.168 2000/07/11 14:30:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.169 2000/07/12 17:38:45 petere Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -907,14 +907,10 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
switch (flag)
{
case 'A':
- /* ----------------
- * enable/disable assert checking.
- * ----------------
- */
#ifdef USE_ASSERT_CHECKING
assert_enabled = atoi(optarg);
#else
- fprintf(stderr, "Assert checking is not enabled\n");
+ fprintf(stderr, "Assert checking is not compiled in\n");
#endif
break;
@@ -1415,7 +1411,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
if (!IsUnderPostmaster)
{
puts("\nPOSTGRES backend interactive interface ");
- puts("$Revision: 1.168 $ $Date: 2000/07/11 14:30:27 $\n");
+ puts("$Revision: 1.169 $ $Date: 2000/07/12 17:38:45 $\n");
}
/*
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 44078e4a921..fc0874d1cac 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -4,7 +4,7 @@
* Support for grand unified configuration scheme, including SET
* command, configuration file, and command line options.
*
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.5 2000/07/03 20:46:05 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.6 2000/07/12 17:38:48 petere Exp $
*
* Copyright 2000 by PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>.
@@ -37,6 +37,9 @@ extern bool Log_connections;
/*
* Debugging options
*/
+#ifdef USE_ASSERT_CHECKING
+bool assert_enabled;
+#endif
bool Debug_print_query = false;
bool Debug_print_plan = false;
bool Debug_print_parse = false;
@@ -150,13 +153,17 @@ ConfigureNamesBool[] =
{"ksqo", PGC_USERSET, &_use_keyset_query_optimizer, false},
{"geqo", PGC_USERSET, &enable_geqo, true},
- {"net_server", PGC_POSTMASTER, &NetServer, false},
+ {"tcpip_socket", PGC_POSTMASTER, &NetServer, false},
{"fsync", PGC_USERSET, &enableFsync, true},
{"log_connections", PGC_SIGHUP, &Log_connections, false},
{"log_timestamp", PGC_SIGHUP, &Log_timestamp, false},
{"log_pid", PGC_SIGHUP, &Log_pid, false},
+#ifdef USE_ASSERT_CHECKING
+ {"debug_assertions", PGC_USERSET, &assert_enabled, false},
+#endif
+
{"debug_print_query", PGC_USERSET, &Debug_print_query, false},
{"debug_print_parse", PGC_USERSET, &Debug_print_parse, false},
{"debug_print_rewritten", PGC_USERSET, &Debug_print_rewritten, false},
@@ -216,7 +223,7 @@ ConfigureNamesInt[] =
* make sure the buffers are at least twice the number of
* backends, so the constraints here are partially unused.
*/
- {"max_backends", PGC_POSTMASTER, &MaxBackends,
+ {"max_connections", PGC_POSTMASTER, &MaxBackends,
DEF_MAXBACKENDS, 1, MAXBACKENDS},
{"shmem_buffers", PGC_POSTMASTER, &NBuffers,
DEF_NBUFFERS, 16, INT_MAX},
diff --git a/src/include/c.h b/src/include/c.h
index 250a8c6db16..18bdda5e781 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.76 2000/07/07 21:12:47 tgl Exp $
+ * $Id: c.h,v 1.77 2000/07/12 17:38:53 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -706,7 +706,7 @@ typedef struct Exception
#define AssertState(condition) \
Trap(!(condition), BadState)
-extern int assert_enabled;
+extern bool assert_enabled;
#endif /* USE_ASSERT_CHECKING */