diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 1f9a940aa00880092e5077c27812382971ead710..0413fc11cc51415ee47edc783fdfa8b5010d643b 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.12 2000/06/22 22:31:15 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.13 2000/07/12 17:38:41 petere Exp $ --> <Chapter Id="runtime"> @@ -671,6 +671,19 @@ env PGOPTIONS='--geqo=off' psql <para> <variablelist> + <varlistentry> + <term>DEBUG_ASSERTIONS (<type>boolean</type>)</term> + <listitem> + <para> + Turns on various assertion checks. This is a debugging aid. If + you are experiencing strange problems or crashes you might + want to turn this on, as it might expose programming mistakes. + To use this option, the macro <literal>USE_ASSERT_CHECKING</> + must be defined when Postgres is built. + </para> + </listitem> + </varlistentry> + <varlistentry> <term>DEBUG_LEVEL (<type>integer</type>)</term> <listitem> @@ -843,13 +856,13 @@ env PGOPTIONS='--geqo=off' psql </varlistentry> <varlistentry> - <term>MAX_BACKENDS (<type>integer</type>)</term> + <term>MAX_CONNECTIONS (<type>integer</type>)</term> <listitem> <para> Determines how many concurrent connections the database server - will allow. The default is 32. Note that there is also a - compiled-in hard limit on this option, which is currently - 1024. This parameter can only be set at server start. + will allow. The default is 32. There is also a compiled-in + hard upper limit on this option, which is currently 1024. This + parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -868,7 +881,7 @@ env PGOPTIONS='--geqo=off' psql </varlistentry> <varlistentry> - <term>NET_SERVER (<type>boolean</type>)</term> + <term>TCPIP_SOCKET (<type>boolean</type>)</term> <listitem> <para> If this is true, then the server will accept TCP/IP @@ -922,12 +935,12 @@ env PGOPTIONS='--geqo=off' psql This controls the inheritance semantics, in particular whether subtables are included into the consideration of various commands by default. This was not the case in versions prior - to 7.1. If you need this behaviour you can set this variable - to off, but in the long run you are encouraged to change your - applications to use the <literal>ONLY</literal> keyword to - exclude subtables. See the SQL language reference and the - <citetitle>User's Guide</citetitle> for more information about - inheritance. + to 7.1. If you need the old behaviour you can set this + variable to off, but in the long run you are encouraged to + change your applications to use the <literal>ONLY</literal> + keyword to exclude subtables. See the SQL language reference + and the <citetitle>User's Guide</citetitle> for more + information about inheritance. </para> </listitem> </varlistentry> @@ -971,12 +984,12 @@ env PGOPTIONS='--geqo=off' psql </row> <row> <entry>-i</entry> - <entry>net_server = on</entry> + <entry>tcpip_socket = on</entry> <entry></entry> </row> <row> <entry>-N <replaceable>x</replaceable></entry> - <entry>max_backends = <replaceable>x</replaceable></entry> + <entry>max_connections = <replaceable>x</replaceable></entry> <entry></entry> </row> <row> diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 580786c2e698ee2e4891621463fc728769e30899..fe6b7b14557ee9aa00041b39dd6fe946e6d83a33 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,13 +547,23 @@ 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 */ @@ -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 3c672d8f4b289a723389eaf93cf2e58a9327ac84..fce4e2cc28347a5905b2b014699a33c94487ceb6 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 44078e4a9213d1c78aa84c2a9db008073f3275e9..fc0874d1cacae09d2cdcd1dcbd1782e882bf8942 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 250a8c6db164f98928b1928431201bcce6ca79df..18bdda5e781b03c152cdbd5494a13bf32d567552 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 */