88 *
99 *
1010 * IDENTIFICATION
11- * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.182 2000/10/26 17:31:35 tgl Exp $
11+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.183 2000/10/28 01:07:00 petere Exp $
1212 *
1313 * NOTES
1414 * this is the "main" module of the postgres backend and
@@ -1111,7 +1111,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
11111111
11121112optind = 1 ;/* reset after postmaster's usage */
11131113
1114- while ((flag = getopt (argc ,argv ,"A:B:CD:d:Eef:FiLNOPo:p:S:st:v:W:x:-:" ))!= EOF )
1114+ while ((flag = getopt (argc ,argv ,"A:B:CD:d:Eef:FiLNOPo:p:S:st:v:W:x:-:? " ))!= EOF )
11151115switch (flag )
11161116{
11171117case 'A' :
@@ -1385,6 +1385,16 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
13851385char * name ,* value ;
13861386
13871387ParseLongOption (optarg ,& name ,& value );
1388+ if (strcmp (name ,"help" )== 0 )
1389+ {
1390+ usage (argv [0 ]);
1391+ exit (0 );
1392+ }
1393+ else if (strcmp (name ,"version" )== 0 )
1394+ {
1395+ puts ("postgres (PostgreSQL) " PG_VERSION );
1396+ exit (0 );
1397+ }
13881398if (!value )
13891399elog (ERROR ,"--%s requires argument" ,optarg );
13901400
@@ -1395,15 +1405,23 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
13951405break ;
13961406}
13971407
1408+ case '?' :
1409+ if (strcmp (argv [optind - 1 ],"-?" )== 0 )
1410+ {
1411+ usage (argv [0 ]);
1412+ exit (0 );
1413+ }
1414+ else
1415+ errs ++ ;
1416+ break ;
1417+
13981418default :
1399- /* ----------------
1400- *default: bad command line option
1401- * ----------------
1402- */
1419+ /* shouldn't get here */
14031420errs ++ ;
14041421break ;
14051422}
14061423
1424+
14071425if (Show_query_stats &&
14081426(Show_parser_stats || Show_planner_stats || Show_executor_stats ))
14091427{
@@ -1470,8 +1488,8 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
14701488/* noninteractive case: nothing should be left after switches */
14711489if (errs || argc != optind || DBName == NULL )
14721490{
1473- usage ( argv [0 ]);
1474- proc_exit (0 );
1491+ fprintf ( stderr , "%s: invalid command line arguments\nTry -? for help.\n" , argv [0 ]);
1492+ proc_exit (1 );
14751493}
14761494pq_init ();/* initialize libpq at backend startup */
14771495whereToSendOutput = Remote ;
@@ -1483,16 +1501,16 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
14831501whereToSendOutput = Debug ;
14841502if (errs || argc - optind > 1 )
14851503{
1486- usage ( argv [0 ]);
1487- proc_exit (0 );
1504+ fprintf ( stderr , "%s: invalid command line arguments\nTry -? for help.\n" , argv [0 ]);
1505+ proc_exit (1 );
14881506}
14891507else if (argc - optind == 1 )
14901508DBName = argv [optind ];
14911509else if ((DBName = username )== NULL )
14921510{
14931511fprintf (stderr ,"%s: user name undefined and no database specified\n" ,
14941512argv [0 ]);
1495- proc_exit (0 );
1513+ proc_exit (1 );
14961514}
14971515
14981516/*
@@ -1618,7 +1636,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
16181636if (!IsUnderPostmaster )
16191637{
16201638puts ("\nPOSTGRES backend interactive interface " );
1621- puts ("$Revision: 1.182 $ $Date: 2000/10/26 17:31:35 $\n" );
1639+ puts ("$Revision: 1.183 $ $Date: 2000/10/28 01:07:00 $\n" );
16221640}
16231641
16241642/*