I had noticed that most getopt() or getopt_long() calls had their letter lists in pretty crazy orders. There might have been occasional attempts at grouping, but those then haven't been maintained as new options were added. To restore some sanity to this, I went through and ordered them alphabetically.
From 022b6f7665e7f38fd773f7d44c892344b714f795 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Mon, 5 Dec 2022 09:15:53 +0100
Subject: [PATCH] Order getopt arguments

Order the letters in the arguments of getopt() and getopt_long(), as
well as in the subsequent switch statements.  In most cases, I used
alphabetical with lower case first.  In a few cases, existing
different orders (e.g., upper case first) was kept to reduce the diff
size.
---
 src/backend/bootstrap/bootstrap.c             |  52 ++---
 src/backend/postmaster/postmaster.c           |  56 ++---
 src/backend/tcop/postgres.c                   |  54 ++---
 src/bin/pg_amcheck/pg_amcheck.c               |  10 +-
 src/bin/pg_archivecleanup/pg_archivecleanup.c |   2 +-
 src/bin/pg_basebackup/pg_basebackup.c         | 108 ++++-----
 src/bin/pg_basebackup/pg_receivewal.c         |  41 ++--
 src/bin/pg_basebackup/pg_recvlogical.c        |   8 +-
 src/bin/pg_checksums/pg_checksums.c           |  14 +-
 src/bin/pg_upgrade/option.c                   |   2 +-
 src/bin/pgbench/pgbench.c                     | 206 +++++++++---------
 src/bin/scripts/clusterdb.c                   |  38 ++--
 src/bin/scripts/createdb.c                    |  44 ++--
 src/bin/scripts/dropdb.c                      |  20 +-
 src/bin/scripts/dropuser.c                    |  14 +-
 src/bin/scripts/reindexdb.c                   |  56 ++---
 src/bin/scripts/vacuumdb.c                    |  98 ++++-----
 src/interfaces/ecpg/preproc/ecpg.c            |  91 ++++----
 .../modules/libpq_pipeline/libpq_pipeline.c   |   8 +-
 19 files changed, 458 insertions(+), 464 deletions(-)

diff --git a/src/backend/bootstrap/bootstrap.c 
b/src/backend/bootstrap/bootstrap.c
index 661ebacb0c..d623ad9d50 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -228,6 +228,32 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
                        case 'B':
                                SetConfigOption("shared_buffers", optarg, 
PGC_POSTMASTER, PGC_S_ARGV);
                                break;
+                       case 'c':
+                       case '-':
+                               {
+                                       char       *name,
+                                                          *value;
+
+                                       ParseLongOption(optarg, &name, &value);
+                                       if (!value)
+                                       {
+                                               if (flag == '-')
+                                                       ereport(ERROR,
+                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
+                                                                        
errmsg("--%s requires a value",
+                                                                               
        optarg)));
+                                               else
+                                                       ereport(ERROR,
+                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
+                                                                        
errmsg("-c %s requires a value",
+                                                                               
        optarg)));
+                                       }
+
+                                       SetConfigOption(name, value, 
PGC_POSTMASTER, PGC_S_ARGV);
+                                       pfree(name);
+                                       pfree(value);
+                                       break;
+                               }
                        case 'D':
                                userDoption = pstrdup(optarg);
                                break;
@@ -265,32 +291,6 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
                                                                        
PGC_S_DYNAMIC_DEFAULT);
                                }
                                break;
-                       case 'c':
-                       case '-':
-                               {
-                                       char       *name,
-                                                          *value;
-
-                                       ParseLongOption(optarg, &name, &value);
-                                       if (!value)
-                                       {
-                                               if (flag == '-')
-                                                       ereport(ERROR,
-                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
-                                                                        
errmsg("--%s requires a value",
-                                                                               
        optarg)));
-                                               else
-                                                       ereport(ERROR,
-                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
-                                                                        
errmsg("-c %s requires a value",
-                                                                               
        optarg)));
-                                       }
-
-                                       SetConfigOption(name, value, 
PGC_POSTMASTER, PGC_S_ARGV);
-                                       pfree(name);
-                                       pfree(value);
-                                       break;
-                               }
                        default:
                                write_stderr("Try \"%s --help\" for more 
information.\n",
                                                         progname);
diff --git a/src/backend/postmaster/postmaster.c 
b/src/backend/postmaster/postmaster.c
index a8a246921f..f459dab360 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -690,7 +690,7 @@ PostmasterMain(int argc, char *argv[])
         * tcop/postgres.c (the option sets should not conflict) and with the
         * common help() function in main/main.c.
         */
-       while ((opt = getopt(argc, argv, 
"B:bc:C:D:d:EeFf:h:ijk:lN:OPp:r:S:sTt:W:-:")) != -1)
+       while ((opt = getopt(argc, argv, 
"B:bC:c:D:d:EeFf:h:ijk:lN:OPp:r:S:sTt:W:-:")) != -1)
        {
                switch (opt)
                {
@@ -707,6 +707,33 @@ PostmasterMain(int argc, char *argv[])
                                output_config_variable = strdup(optarg);
                                break;
 
+                       case 'c':
+                       case '-':
+                               {
+                                       char       *name,
+                                                          *value;
+
+                                       ParseLongOption(optarg, &name, &value);
+                                       if (!value)
+                                       {
+                                               if (opt == '-')
+                                                       ereport(ERROR,
+                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
+                                                                        
errmsg("--%s requires a value",
+                                                                               
        optarg)));
+                                               else
+                                                       ereport(ERROR,
+                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
+                                                                        
errmsg("-c %s requires a value",
+                                                                               
        optarg)));
+                                       }
+
+                                       SetConfigOption(name, value, 
PGC_POSTMASTER, PGC_S_ARGV);
+                                       pfree(name);
+                                       pfree(value);
+                                       break;
+                               }
+
                        case 'D':
                                userDoption = strdup(optarg);
                                break;
@@ -814,33 +841,6 @@ PostmasterMain(int argc, char *argv[])
                                SetConfigOption("post_auth_delay", optarg, 
PGC_POSTMASTER, PGC_S_ARGV);
                                break;
 
-                       case 'c':
-                       case '-':
-                               {
-                                       char       *name,
-                                                          *value;
-
-                                       ParseLongOption(optarg, &name, &value);
-                                       if (!value)
-                                       {
-                                               if (opt == '-')
-                                                       ereport(ERROR,
-                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
-                                                                        
errmsg("--%s requires a value",
-                                                                               
        optarg)));
-                                               else
-                                                       ereport(ERROR,
-                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
-                                                                        
errmsg("-c %s requires a value",
-                                                                               
        optarg)));
-                                       }
-
-                                       SetConfigOption(name, value, 
PGC_POSTMASTER, PGC_S_ARGV);
-                                       pfree(name);
-                                       pfree(value);
-                                       break;
-                               }
-
                        default:
                                write_stderr("Try \"%s --help\" for more 
information.\n",
                                                         progname);
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 3082093d1e..f8808d2191 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -3718,7 +3718,7 @@ process_postgres_switches(int argc, char *argv[], 
GucContext ctx,
         * postmaster/postmaster.c (the option sets should not conflict) and 
with
         * the common help() function in main/main.c.
         */
-       while ((flag = getopt(argc, argv, 
"B:bc:C:D:d:EeFf:h:ijk:lN:nOPp:r:S:sTt:v:W:-:")) != -1)
+       while ((flag = getopt(argc, argv, 
"B:bC:c:D:d:EeFf:h:ijk:lN:nOPp:r:S:sTt:v:W:-:")) != -1)
        {
                switch (flag)
                {
@@ -3736,6 +3736,32 @@ process_postgres_switches(int argc, char *argv[], 
GucContext ctx,
                                /* ignored for consistency with the postmaster 
*/
                                break;
 
+                       case 'c':
+                       case '-':
+                               {
+                                       char       *name,
+                                                          *value;
+
+                                       ParseLongOption(optarg, &name, &value);
+                                       if (!value)
+                                       {
+                                               if (flag == '-')
+                                                       ereport(ERROR,
+                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
+                                                                        
errmsg("--%s requires a value",
+                                                                               
        optarg)));
+                                               else
+                                                       ereport(ERROR,
+                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
+                                                                        
errmsg("-c %s requires a value",
+                                                                               
        optarg)));
+                                       }
+                                       SetConfigOption(name, value, ctx, 
gucsource);
+                                       pfree(name);
+                                       pfree(value);
+                                       break;
+                               }
+
                        case 'D':
                                if (secure)
                                        userDoption = strdup(optarg);
@@ -3850,32 +3876,6 @@ process_postgres_switches(int argc, char *argv[], 
GucContext ctx,
                                SetConfigOption("post_auth_delay", optarg, ctx, 
gucsource);
                                break;
 
-                       case 'c':
-                       case '-':
-                               {
-                                       char       *name,
-                                                          *value;
-
-                                       ParseLongOption(optarg, &name, &value);
-                                       if (!value)
-                                       {
-                                               if (flag == '-')
-                                                       ereport(ERROR,
-                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
-                                                                        
errmsg("--%s requires a value",
-                                                                               
        optarg)));
-                                               else
-                                                       ereport(ERROR,
-                                                                       
(errcode(ERRCODE_SYNTAX_ERROR),
-                                                                        
errmsg("-c %s requires a value",
-                                                                               
        optarg)));
-                                       }
-                                       SetConfigOption(name, value, ctx, 
gucsource);
-                                       pfree(name);
-                                       pfree(value);
-                                       break;
-                               }
-
                        default:
                                errs++;
                                break;
diff --git a/src/bin/pg_amcheck/pg_amcheck.c b/src/bin/pg_amcheck/pg_amcheck.c
index 9ce4b11f1e..aa4b12e707 100644
--- a/src/bin/pg_amcheck/pg_amcheck.c
+++ b/src/bin/pg_amcheck/pg_amcheck.c
@@ -291,7 +291,7 @@ main(int argc, char *argv[])
        handle_help_version_opts(argc, argv, progname, help);
 
        /* process command-line options */
-       while ((c = getopt_long(argc, argv, 
"ad:D:eh:Hi:I:j:p:Pr:R:s:S:t:T:U:wWv",
+       while ((c = getopt_long(argc, argv, 
"ad:D:eh:Hi:I:j:p:Pr:R:s:S:t:T:U:vwW",
                                                        long_options, 
&optindex)) != -1)
        {
                char       *endptr;
@@ -363,16 +363,16 @@ main(int argc, char *argv[])
                        case 'U':
                                username = pg_strdup(optarg);
                                break;
+                       case 'v':
+                               opts.verbose = true;
+                               pg_logging_increase_verbosity();
+                               break;
                        case 'w':
                                prompt_password = TRI_NO;
                                break;
                        case 'W':
                                prompt_password = TRI_YES;
                                break;
-                       case 'v':
-                               opts.verbose = true;
-                               pg_logging_increase_verbosity();
-                               break;
                        case 1:
                                maintenance_db = pg_strdup(optarg);
                                break;
diff --git a/src/bin/pg_archivecleanup/pg_archivecleanup.c 
b/src/bin/pg_archivecleanup/pg_archivecleanup.c
index 064cbb222f..7726d05149 100644
--- a/src/bin/pg_archivecleanup/pg_archivecleanup.c
+++ b/src/bin/pg_archivecleanup/pg_archivecleanup.c
@@ -294,7 +294,7 @@ main(int argc, char **argv)
                }
        }
 
-       while ((c = getopt(argc, argv, "x:dn")) != -1)
+       while ((c = getopt(argc, argv, "dnx:")) != -1)
        {
                switch (c)
                {
diff --git a/src/bin/pg_basebackup/pg_basebackup.c 
b/src/bin/pg_basebackup/pg_basebackup.c
index 920569e447..931e2013b8 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -2295,14 +2295,26 @@ main(int argc, char **argv)
 
        atexit(cleanup_directories_atexit);
 
-       while ((c = getopt_long(argc, argv, 
"CD:F:r:RS:t:T:X:l:nNzZ:d:c:h:p:U:s:wWvP",
+       while ((c = getopt_long(argc, argv, 
"c:Cd:D:F:h:l:nNp:Pr:Rs:S:t:T:U:vwWX:zZ:",
                                                        long_options, 
&option_index)) != -1)
        {
                switch (c)
                {
+                       case 'c':
+                               if (pg_strcasecmp(optarg, "fast") == 0)
+                                       fastcheckpoint = true;
+                               else if (pg_strcasecmp(optarg, "spread") == 0)
+                                       fastcheckpoint = false;
+                               else
+                                       pg_fatal("invalid checkpoint argument 
\"%s\", must be \"fast\" or \"spread\"",
+                                                        optarg);
+                               break;
                        case 'C':
                                create_slot = true;
                                break;
+                       case 'd':
+                               connection_string = pg_strdup(optarg);
+                               break;
                        case 'D':
                                basedir = pg_strdup(optarg);
                                break;
@@ -2315,12 +2327,37 @@ main(int argc, char **argv)
                                        pg_fatal("invalid output format \"%s\", 
must be \"plain\" or \"tar\"",
                                                         optarg);
                                break;
+                       case 'h':
+                               dbhost = pg_strdup(optarg);
+                               break;
+                       case 'l':
+                               label = pg_strdup(optarg);
+                               break;
+                       case 'n':
+                               noclean = true;
+                               break;
+                       case 'N':
+                               do_sync = false;
+                               break;
+                       case 'p':
+                               dbport = pg_strdup(optarg);
+                               break;
+                       case 'P':
+                               showprogress = true;
+                               break;
                        case 'r':
                                maxrate = parse_max_rate(optarg);
                                break;
                        case 'R':
                                writerecoveryconf = true;
                                break;
+                       case 's':
+                               if (!option_parse_int(optarg, 
"-s/--status-interval", 0,
+                                                                         
INT_MAX / 1000,
+                                                                         
&standby_message_timeout))
+                                       exit(1);
+                               standby_message_timeout *= 1000;
+                               break;
                        case 'S':
 
                                /*
@@ -2330,15 +2367,24 @@ main(int argc, char **argv)
                                replication_slot = pg_strdup(optarg);
                                temp_replication_slot = false;
                                break;
-                       case 2:
-                               no_slot = true;
-                               break;
                        case 't':
                                backup_target = pg_strdup(optarg);
                                break;
                        case 'T':
                                tablespace_list_append(optarg);
                                break;
+                       case 'U':
+                               dbuser = pg_strdup(optarg);
+                               break;
+                       case 'v':
+                               verbose++;
+                               break;
+                       case 'w':
+                               dbgetpassword = -1;
+                               break;
+                       case 'W':
+                               dbgetpassword = 1;
+                               break;
                        case 'X':
                                if (strcmp(optarg, "n") == 0 ||
                                        strcmp(optarg, "none") == 0)
@@ -2359,18 +2405,6 @@ main(int argc, char **argv)
                                        pg_fatal("invalid wal-method option 
\"%s\", must be \"fetch\", \"stream\", or \"none\"",
                                                         optarg);
                                break;
-                       case 1:
-                               xlog_dir = pg_strdup(optarg);
-                               break;
-                       case 'l':
-                               label = pg_strdup(optarg);
-                               break;
-                       case 'n':
-                               noclean = true;
-                               break;
-                       case 'N':
-                               do_sync = false;
-                               break;
                        case 'z':
                                compression_algorithm = "gzip";
                                compression_detail = NULL;
@@ -2380,45 +2414,11 @@ main(int argc, char **argv)
                                backup_parse_compress_options(optarg, 
&compression_algorithm,
                                                                                
          &compression_detail, &compressloc);
                                break;
-                       case 'c':
-                               if (pg_strcasecmp(optarg, "fast") == 0)
-                                       fastcheckpoint = true;
-                               else if (pg_strcasecmp(optarg, "spread") == 0)
-                                       fastcheckpoint = false;
-                               else
-                                       pg_fatal("invalid checkpoint argument 
\"%s\", must be \"fast\" or \"spread\"",
-                                                        optarg);
-                               break;
-                       case 'd':
-                               connection_string = pg_strdup(optarg);
-                               break;
-                       case 'h':
-                               dbhost = pg_strdup(optarg);
-                               break;
-                       case 'p':
-                               dbport = pg_strdup(optarg);
-                               break;
-                       case 'U':
-                               dbuser = pg_strdup(optarg);
-                               break;
-                       case 'w':
-                               dbgetpassword = -1;
-                               break;
-                       case 'W':
-                               dbgetpassword = 1;
-                               break;
-                       case 's':
-                               if (!option_parse_int(optarg, 
"-s/--status-interval", 0,
-                                                                         
INT_MAX / 1000,
-                                                                         
&standby_message_timeout))
-                                       exit(1);
-                               standby_message_timeout *= 1000;
-                               break;
-                       case 'v':
-                               verbose++;
+                       case 1:
+                               xlog_dir = pg_strdup(optarg);
                                break;
-                       case 'P':
-                               showprogress = true;
+                       case 2:
+                               no_slot = true;
                                break;
                        case 3:
                                verify_checksums = false;
diff --git a/src/bin/pg_basebackup/pg_receivewal.c 
b/src/bin/pg_basebackup/pg_receivewal.c
index c7a46b8a2a..c8e21f51bc 100644
--- a/src/bin/pg_basebackup/pg_receivewal.c
+++ b/src/bin/pg_basebackup/pg_receivewal.c
@@ -43,7 +43,7 @@
 static char *basedir = NULL;
 static int     verbose = 0;
 static int     compresslevel = 0;
-static int     noloop = 0;
+static bool    noloop = false;
 static int     standby_message_timeout = 10 * 1000;    /* 10 sec = default */
 static volatile sig_atomic_t time_to_stop = false;
 static bool do_create_slot = false;
@@ -677,32 +677,31 @@ main(int argc, char **argv)
                }
        }
 
-       while ((c = getopt_long(argc, argv, "D:d:E:h:p:U:s:S:nwWvZ:",
+       while ((c = getopt_long(argc, argv, "d:D:E:h:np:s:S:U:vwWZ:",
                                                        long_options, 
&option_index)) != -1)
        {
                switch (c)
                {
+                       case 'd':
+                               connection_string = pg_strdup(optarg);
+                               break;
                        case 'D':
                                basedir = pg_strdup(optarg);
                                break;
-                       case 'd':
-                               connection_string = pg_strdup(optarg);
+                       case 'E':
+                               if (sscanf(optarg, "%X/%X", &hi, &lo) != 2)
+                                       pg_fatal("could not parse end position 
\"%s\"", optarg);
+                               endpos = ((uint64) hi) << 32 | lo;
                                break;
                        case 'h':
                                dbhost = pg_strdup(optarg);
                                break;
+                       case 'n':
+                               noloop = true;
+                               break;
                        case 'p':
                                dbport = pg_strdup(optarg);
                                break;
-                       case 'U':
-                               dbuser = pg_strdup(optarg);
-                               break;
-                       case 'w':
-                               dbgetpassword = -1;
-                               break;
-                       case 'W':
-                               dbgetpassword = 1;
-                               break;
                        case 's':
                                if (!option_parse_int(optarg, 
"-s/--status-interval", 0,
                                                                          
INT_MAX / 1000,
@@ -713,22 +712,22 @@ main(int argc, char **argv)
                        case 'S':
                                replication_slot = pg_strdup(optarg);
                                break;
-                       case 'E':
-                               if (sscanf(optarg, "%X/%X", &hi, &lo) != 2)
-                                       pg_fatal("could not parse end position 
\"%s\"", optarg);
-                               endpos = ((uint64) hi) << 32 | lo;
-                               break;
-                       case 'n':
-                               noloop = 1;
+                       case 'U':
+                               dbuser = pg_strdup(optarg);
                                break;
                        case 'v':
                                verbose++;
                                break;
+                       case 'w':
+                               dbgetpassword = -1;
+                               break;
+                       case 'W':
+                               dbgetpassword = 1;
+                               break;
                        case 'Z':
                                parse_compress_options(optarg, 
&compression_algorithm_str,
                                                                           
&compression_detail);
                                break;
-/* action */
                        case 1:
                                do_create_slot = true;
                                break;
diff --git a/src/bin/pg_basebackup/pg_recvlogical.c 
b/src/bin/pg_basebackup/pg_recvlogical.c
index 5f2e6af445..1ce803cce8 100644
--- a/src/bin/pg_basebackup/pg_recvlogical.c
+++ b/src/bin/pg_basebackup/pg_recvlogical.c
@@ -728,7 +728,7 @@ main(int argc, char **argv)
                }
        }
 
-       while ((c = getopt_long(argc, argv, "E:f:F:nvtd:h:p:U:wWI:o:P:s:S:",
+       while ((c = getopt_long(argc, argv, "E:f:F:ntvd:h:p:U:wWI:o:P:s:S:",
                                                        long_options, 
&option_index)) != -1)
        {
                switch (c)
@@ -747,12 +747,12 @@ main(int argc, char **argv)
                        case 'n':
                                noloop = 1;
                                break;
-                       case 'v':
-                               verbose++;
-                               break;
                        case 't':
                                two_phase = true;
                                break;
+                       case 'v':
+                               verbose++;
+                               break;
 /* connection options */
                        case 'd':
                                dbname = pg_strdup(optarg);
diff --git a/src/bin/pg_checksums/pg_checksums.c 
b/src/bin/pg_checksums/pg_checksums.c
index 324ccf7783..7f3d5fc040 100644
--- a/src/bin/pg_checksums/pg_checksums.c
+++ b/src/bin/pg_checksums/pg_checksums.c
@@ -471,7 +471,7 @@ main(int argc, char *argv[])
                }
        }
 
-       while ((c = getopt_long(argc, argv, "cD:deNPf:v", long_options, 
&option_index)) != -1)
+       while ((c = getopt_long(argc, argv, "cdD:ef:NPv", long_options, 
&option_index)) != -1)
        {
                switch (c)
                {
@@ -481,6 +481,9 @@ main(int argc, char *argv[])
                        case 'd':
                                mode = PG_MODE_DISABLE;
                                break;
+                       case 'D':
+                               DataDir = optarg;
+                               break;
                        case 'e':
                                mode = PG_MODE_ENABLE;
                                break;
@@ -494,15 +497,12 @@ main(int argc, char *argv[])
                        case 'N':
                                do_sync = false;
                                break;
-                       case 'v':
-                               verbose = true;
-                               break;
-                       case 'D':
-                               DataDir = optarg;
-                               break;
                        case 'P':
                                showprogress = true;
                                break;
+                       case 'v':
+                               verbose = true;
+                               break;
                        default:
                                /* getopt_long already emitted a complaint */
                                pg_log_error_hint("Try \"%s --help\" for more 
information.", progname);
diff --git a/src/bin/pg_upgrade/option.c b/src/bin/pg_upgrade/option.c
index f441668c61..2939f584b4 100644
--- a/src/bin/pg_upgrade/option.c
+++ b/src/bin/pg_upgrade/option.c
@@ -99,7 +99,7 @@ parseCommandLine(int argc, char *argv[])
        if (os_user_effective_id == 0)
                pg_fatal("%s: cannot be run as root", os_info.progname);
 
-       while ((option = getopt_long(argc, argv, "d:D:b:B:cj:kNo:O:p:P:rs:U:v",
+       while ((option = getopt_long(argc, argv, "b:B:cd:D:j:kNo:O:p:P:rs:U:v",
                                                                 long_options, 
&optindex)) != -1)
        {
                switch (option)
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index ee1a33c9ee..3182a73ad7 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -6615,36 +6615,22 @@ main(int argc, char **argv)
        if (!set_random_seed(getenv("PGBENCH_RANDOM_SEED")))
                pg_fatal("error while setting random seed from 
PGBENCH_RANDOM_SEED environment variable");
 
-       while ((c = getopt_long(argc, argv, 
"iI:h:nvp:dqb:SNc:j:Crs:t:T:U:lf:D:F:M:P:R:L:", long_options, &optindex)) != -1)
+       while ((c = getopt_long(argc, argv, 
"b:c:CdD:f:F:h:iI:j:lL:M:nNp:P:qrR:s:St:T:U:v", long_options, &optindex)) != -1)
        {
                char       *script;
 
                switch (c)
                {
-                       case 'i':
-                               is_init_mode = true;
-                               break;
-                       case 'I':
-                               pg_free(initialize_steps);
-                               initialize_steps = pg_strdup(optarg);
-                               checkInitSteps(initialize_steps);
-                               initialization_option_set = true;
-                               break;
-                       case 'h':
-                               pghost = pg_strdup(optarg);
-                               break;
-                       case 'n':
-                               is_no_vacuum = true;
-                               break;
-                       case 'v':
+                       case 'b':
+                               if (strcmp(optarg, "list") == 0)
+                               {
+                                       listAvailableScripts();
+                                       exit(0);
+                               }
+                               weight = parseScriptWeight(optarg, &script);
+                               process_builtin(findBuiltin(script), weight);
                                benchmarking_option_set = true;
-                               do_vacuum_accounts = true;
-                               break;
-                       case 'p':
-                               pgport = pg_strdup(optarg);
-                               break;
-                       case 'd':
-                               pg_logging_increase_verbosity();
+                               internal_script_used = true;
                                break;
                        case 'c':
                                benchmarking_option_set = true;
@@ -6665,80 +6651,12 @@ main(int argc, char **argv)
                                }
 #endif                                                 /* HAVE_GETRLIMIT */
                                break;
-                       case 'j':                       /* jobs */
-                               benchmarking_option_set = true;
-                               if (!option_parse_int(optarg, "-j/--jobs", 1, 
INT_MAX,
-                                                                         
&nthreads))
-                               {
-                                       exit(1);
-                               }
-#ifndef ENABLE_THREAD_SAFETY
-                               if (nthreads != 1)
-                                       pg_fatal("threads are not supported on 
this platform; use -j1");
-#endif                                                 /* 
!ENABLE_THREAD_SAFETY */
-                               break;
                        case 'C':
                                benchmarking_option_set = true;
                                is_connect = true;
                                break;
-                       case 'r':
-                               benchmarking_option_set = true;
-                               report_per_command = true;
-                               break;
-                       case 's':
-                               scale_given = true;
-                               if (!option_parse_int(optarg, "-s/--scale", 1, 
INT_MAX,
-                                                                         
&scale))
-                                       exit(1);
-                               break;
-                       case 't':
-                               benchmarking_option_set = true;
-                               if (!option_parse_int(optarg, 
"-t/--transactions", 1, INT_MAX,
-                                                                         
&nxacts))
-                                       exit(1);
-                               break;
-                       case 'T':
-                               benchmarking_option_set = true;
-                               if (!option_parse_int(optarg, "-T/--time", 1, 
INT_MAX,
-                                                                         
&duration))
-                                       exit(1);
-                               break;
-                       case 'U':
-                               username = pg_strdup(optarg);
-                               break;
-                       case 'l':
-                               benchmarking_option_set = true;
-                               use_log = true;
-                               break;
-                       case 'q':
-                               initialization_option_set = true;
-                               use_quiet = true;
-                               break;
-                       case 'b':
-                               if (strcmp(optarg, "list") == 0)
-                               {
-                                       listAvailableScripts();
-                                       exit(0);
-                               }
-                               weight = parseScriptWeight(optarg, &script);
-                               process_builtin(findBuiltin(script), weight);
-                               benchmarking_option_set = true;
-                               internal_script_used = true;
-                               break;
-                       case 'S':
-                               process_builtin(findBuiltin("select-only"), 1);
-                               benchmarking_option_set = true;
-                               internal_script_used = true;
-                               break;
-                       case 'N':
-                               process_builtin(findBuiltin("simple-update"), 
1);
-                               benchmarking_option_set = true;
-                               internal_script_used = true;
-                               break;
-                       case 'f':
-                               weight = parseScriptWeight(optarg, &script);
-                               process_file(script, weight);
-                               benchmarking_option_set = true;
+                       case 'd':
+                               pg_logging_increase_verbosity();
                                break;
                        case 'D':
                                {
@@ -6754,12 +6672,55 @@ main(int argc, char **argv)
                                                exit(1);
                                }
                                break;
+                       case 'f':
+                               weight = parseScriptWeight(optarg, &script);
+                               process_file(script, weight);
+                               benchmarking_option_set = true;
+                               break;
                        case 'F':
                                initialization_option_set = true;
                                if (!option_parse_int(optarg, 
"-F/--fillfactor", 10, 100,
                                                                          
&fillfactor))
                                        exit(1);
                                break;
+                       case 'h':
+                               pghost = pg_strdup(optarg);
+                               break;
+                       case 'i':
+                               is_init_mode = true;
+                               break;
+                       case 'I':
+                               pg_free(initialize_steps);
+                               initialize_steps = pg_strdup(optarg);
+                               checkInitSteps(initialize_steps);
+                               initialization_option_set = true;
+                               break;
+                       case 'j':                       /* jobs */
+                               benchmarking_option_set = true;
+                               if (!option_parse_int(optarg, "-j/--jobs", 1, 
INT_MAX,
+                                                                         
&nthreads))
+                               {
+                                       exit(1);
+                               }
+#ifndef ENABLE_THREAD_SAFETY
+                               if (nthreads != 1)
+                                       pg_fatal("threads are not supported on 
this platform; use -j1");
+#endif                                                 /* 
!ENABLE_THREAD_SAFETY */
+                               break;
+                       case 'l':
+                               benchmarking_option_set = true;
+                               use_log = true;
+                               break;
+                       case 'L':
+                               {
+                                       double          limit_ms = atof(optarg);
+
+                                       if (limit_ms <= 0.0)
+                                               pg_fatal("invalid latency 
limit: \"%s\"", optarg);
+                                       benchmarking_option_set = true;
+                                       latency_limit = (int64) (limit_ms * 
1000);
+                               }
+                               break;
                        case 'M':
                                benchmarking_option_set = true;
                                for (querymode = 0; querymode < NUM_QUERYMODE; 
querymode++)
@@ -6768,12 +6729,31 @@ main(int argc, char **argv)
                                if (querymode >= NUM_QUERYMODE)
                                        pg_fatal("invalid query mode (-M): 
\"%s\"", optarg);
                                break;
+                       case 'n':
+                               is_no_vacuum = true;
+                               break;
+                       case 'N':
+                               process_builtin(findBuiltin("simple-update"), 
1);
+                               benchmarking_option_set = true;
+                               internal_script_used = true;
+                               break;
+                       case 'p':
+                               pgport = pg_strdup(optarg);
+                               break;
                        case 'P':
                                benchmarking_option_set = true;
                                if (!option_parse_int(optarg, "-P/--progress", 
1, INT_MAX,
                                                                          
&progress))
                                        exit(1);
                                break;
+                       case 'q':
+                               initialization_option_set = true;
+                               use_quiet = true;
+                               break;
+                       case 'r':
+                               benchmarking_option_set = true;
+                               report_per_command = true;
+                               break;
                        case 'R':
                                {
                                        /* get a double from the beginning of 
option value */
@@ -6787,15 +6767,35 @@ main(int argc, char **argv)
                                        throttle_delay = 1000000.0 / 
throttle_value;
                                }
                                break;
-                       case 'L':
-                               {
-                                       double          limit_ms = atof(optarg);
-
-                                       if (limit_ms <= 0.0)
-                                               pg_fatal("invalid latency 
limit: \"%s\"", optarg);
-                                       benchmarking_option_set = true;
-                                       latency_limit = (int64) (limit_ms * 
1000);
-                               }
+                       case 's':
+                               scale_given = true;
+                               if (!option_parse_int(optarg, "-s/--scale", 1, 
INT_MAX,
+                                                                         
&scale))
+                                       exit(1);
+                               break;
+                       case 'S':
+                               process_builtin(findBuiltin("select-only"), 1);
+                               benchmarking_option_set = true;
+                               internal_script_used = true;
+                               break;
+                       case 't':
+                               benchmarking_option_set = true;
+                               if (!option_parse_int(optarg, 
"-t/--transactions", 1, INT_MAX,
+                                                                         
&nxacts))
+                                       exit(1);
+                               break;
+                       case 'T':
+                               benchmarking_option_set = true;
+                               if (!option_parse_int(optarg, "-T/--time", 1, 
INT_MAX,
+                                                                         
&duration))
+                                       exit(1);
+                               break;
+                       case 'U':
+                               username = pg_strdup(optarg);
+                               break;
+                       case 'v':
+                               benchmarking_option_set = true;
+                               do_vacuum_accounts = true;
                                break;
                        case 1:                         /* unlogged-tables */
                                initialization_option_set = true;
diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c
index df1766679b..0bda941580 100644
--- a/src/bin/scripts/clusterdb.c
+++ b/src/bin/scripts/clusterdb.c
@@ -68,43 +68,43 @@ main(int argc, char *argv[])
 
        handle_help_version_opts(argc, argv, "clusterdb", help);
 
-       while ((c = getopt_long(argc, argv, "h:p:U:wWeqd:at:v", long_options, 
&optindex)) != -1)
+       while ((c = getopt_long(argc, argv, "ad:eh:p:qt:U:vwW", long_options, 
&optindex)) != -1)
        {
                switch (c)
                {
+                       case 'a':
+                               alldb = true;
+                               break;
+                       case 'd':
+                               dbname = pg_strdup(optarg);
+                               break;
+                       case 'e':
+                               echo = true;
+                               break;
                        case 'h':
                                host = pg_strdup(optarg);
                                break;
                        case 'p':
                                port = pg_strdup(optarg);
                                break;
-                       case 'U':
-                               username = pg_strdup(optarg);
-                               break;
-                       case 'w':
-                               prompt_password = TRI_NO;
-                               break;
-                       case 'W':
-                               prompt_password = TRI_YES;
-                               break;
-                       case 'e':
-                               echo = true;
-                               break;
                        case 'q':
                                quiet = true;
                                break;
-                       case 'd':
-                               dbname = pg_strdup(optarg);
-                               break;
-                       case 'a':
-                               alldb = true;
-                               break;
                        case 't':
                                simple_string_list_append(&tables, optarg);
                                break;
+                       case 'U':
+                               username = pg_strdup(optarg);
+                               break;
                        case 'v':
                                verbose = true;
                                break;
+                       case 'w':
+                               prompt_password = TRI_NO;
+                               break;
+                       case 'W':
+                               prompt_password = TRI_YES;
+                               break;
                        case 2:
                                maintenance_db = pg_strdup(optarg);
                                break;
diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c
index a1482df3d9..fa1713a3a0 100644
--- a/src/bin/scripts/createdb.c
+++ b/src/bin/scripts/createdb.c
@@ -79,16 +79,37 @@ main(int argc, char *argv[])
 
        handle_help_version_opts(argc, argv, "createdb", help);
 
-       while ((c = getopt_long(argc, argv, "h:p:U:wWeO:D:T:E:l:S:", 
long_options, &optindex)) != -1)
+       while ((c = getopt_long(argc, argv, "D:eE:h:l:O:p:S:T:U:wW", 
long_options, &optindex)) != -1)
        {
                switch (c)
                {
+                       case 'D':
+                               tablespace = pg_strdup(optarg);
+                               break;
+                       case 'e':
+                               echo = true;
+                               break;
+                       case 'E':
+                               encoding = pg_strdup(optarg);
+                               break;
                        case 'h':
                                host = pg_strdup(optarg);
                                break;
+                       case 'l':
+                               locale = pg_strdup(optarg);
+                               break;
+                       case 'O':
+                               owner = pg_strdup(optarg);
+                               break;
                        case 'p':
                                port = pg_strdup(optarg);
                                break;
+                       case 'S':
+                               strategy = pg_strdup(optarg);
+                               break;
+                       case 'T':
+                               template = pg_strdup(optarg);
+                               break;
                        case 'U':
                                username = pg_strdup(optarg);
                                break;
@@ -98,33 +119,12 @@ main(int argc, char *argv[])
                        case 'W':
                                prompt_password = TRI_YES;
                                break;
-                       case 'e':
-                               echo = true;
-                               break;
-                       case 'O':
-                               owner = pg_strdup(optarg);
-                               break;
-                       case 'D':
-                               tablespace = pg_strdup(optarg);
-                               break;
-                       case 'T':
-                               template = pg_strdup(optarg);
-                               break;
-                       case 'E':
-                               encoding = pg_strdup(optarg);
-                               break;
-                       case 'S':
-                               strategy = pg_strdup(optarg);
-                               break;
                        case 1:
                                lc_collate = pg_strdup(optarg);
                                break;
                        case 2:
                                lc_ctype = pg_strdup(optarg);
                                break;
-                       case 'l':
-                               locale = pg_strdup(optarg);
-                               break;
                        case 3:
                                maintenance_db = pg_strdup(optarg);
                                break;
diff --git a/src/bin/scripts/dropdb.c b/src/bin/scripts/dropdb.c
index afc00dac78..3ca5b82ddc 100644
--- a/src/bin/scripts/dropdb.c
+++ b/src/bin/scripts/dropdb.c
@@ -65,13 +65,22 @@ main(int argc, char *argv[])
 
        handle_help_version_opts(argc, argv, "dropdb", help);
 
-       while ((c = getopt_long(argc, argv, "h:p:U:wWeif", long_options, 
&optindex)) != -1)
+       while ((c = getopt_long(argc, argv, "efh:ip:U:wW", long_options, 
&optindex)) != -1)
        {
                switch (c)
                {
+                       case 'e':
+                               echo = true;
+                               break;
+                       case 'f':
+                               force = true;
+                               break;
                        case 'h':
                                host = pg_strdup(optarg);
                                break;
+                       case 'i':
+                               interactive = true;
+                               break;
                        case 'p':
                                port = pg_strdup(optarg);
                                break;
@@ -84,15 +93,6 @@ main(int argc, char *argv[])
                        case 'W':
                                prompt_password = TRI_YES;
                                break;
-                       case 'e':
-                               echo = true;
-                               break;
-                       case 'i':
-                               interactive = true;
-                               break;
-                       case 'f':
-                               force = true;
-                               break;
                        case 0:
                                /* this covers the long options */
                                break;
diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c
index 82c1f35ab2..d8c77cc8ff 100644
--- a/src/bin/scripts/dropuser.c
+++ b/src/bin/scripts/dropuser.c
@@ -62,13 +62,19 @@ main(int argc, char *argv[])
 
        handle_help_version_opts(argc, argv, "dropuser", help);
 
-       while ((c = getopt_long(argc, argv, "h:p:U:wWei", long_options, 
&optindex)) != -1)
+       while ((c = getopt_long(argc, argv, "eh:ip:U:wW", long_options, 
&optindex)) != -1)
        {
                switch (c)
                {
+                       case 'e':
+                               echo = true;
+                               break;
                        case 'h':
                                host = pg_strdup(optarg);
                                break;
+                       case 'i':
+                               interactive = true;
+                               break;
                        case 'p':
                                port = pg_strdup(optarg);
                                break;
@@ -81,12 +87,6 @@ main(int argc, char *argv[])
                        case 'W':
                                prompt_password = TRI_YES;
                                break;
-                       case 'e':
-                               echo = true;
-                               break;
-                       case 'i':
-                               interactive = true;
-                               break;
                        case 0:
                                /* this covers the long options */
                                break;
diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c
index 0e93a4eeff..1fbf924ab3 100644
--- a/src/bin/scripts/reindexdb.c
+++ b/src/bin/scripts/reindexdb.c
@@ -109,57 +109,57 @@ main(int argc, char *argv[])
        handle_help_version_opts(argc, argv, "reindexdb", help);
 
        /* process command-line options */
-       while ((c = getopt_long(argc, argv, "h:p:U:wWeqS:d:ast:i:j:v", 
long_options, &optindex)) != -1)
+       while ((c = getopt_long(argc, argv, "ad:eh:i:j:qp:sS:t:U:vwW", 
long_options, &optindex)) != -1)
        {
                switch (c)
                {
-                       case 'h':
-                               host = pg_strdup(optarg);
+                       case 'a':
+                               alldb = true;
                                break;
-                       case 'p':
-                               port = pg_strdup(optarg);
+                       case 'd':
+                               dbname = pg_strdup(optarg);
                                break;
-                       case 'U':
-                               username = pg_strdup(optarg);
+                       case 'e':
+                               echo = true;
                                break;
-                       case 'w':
-                               prompt_password = TRI_NO;
+                       case 'h':
+                               host = pg_strdup(optarg);
                                break;
-                       case 'W':
-                               prompt_password = TRI_YES;
+                       case 'i':
+                               simple_string_list_append(&indexes, optarg);
                                break;
-                       case 'e':
-                               echo = true;
+                       case 'j':
+                               if (!option_parse_int(optarg, "-j/--jobs", 1, 
INT_MAX,
+                                                                         
&concurrentCons))
+                                       exit(1);
                                break;
                        case 'q':
                                quiet = true;
                                break;
-                       case 'S':
-                               simple_string_list_append(&schemas, optarg);
-                               break;
-                       case 'd':
-                               dbname = pg_strdup(optarg);
-                               break;
-                       case 'a':
-                               alldb = true;
+                       case 'p':
+                               port = pg_strdup(optarg);
                                break;
                        case 's':
                                syscatalog = true;
                                break;
+                       case 'S':
+                               simple_string_list_append(&schemas, optarg);
+                               break;
                        case 't':
                                simple_string_list_append(&tables, optarg);
                                break;
-                       case 'i':
-                               simple_string_list_append(&indexes, optarg);
-                               break;
-                       case 'j':
-                               if (!option_parse_int(optarg, "-j/--jobs", 1, 
INT_MAX,
-                                                                         
&concurrentCons))
-                                       exit(1);
+                       case 'U':
+                               username = pg_strdup(optarg);
                                break;
                        case 'v':
                                verbose = true;
                                break;
+                       case 'w':
+                               prompt_password = TRI_NO;
+                               break;
+                       case 'W':
+                               prompt_password = TRI_YES;
+                               break;
                        case 1:
                                concurrently = true;
                                break;
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index 0482aa9e88..272e37d290 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -155,82 +155,76 @@ main(int argc, char *argv[])
 
        handle_help_version_opts(argc, argv, "vacuumdb", help);
 
-       while ((c = getopt_long(argc, argv, "h:p:U:wWeqd:zZFat:fvj:P:n:N:", 
long_options, &optindex)) != -1)
+       while ((c = getopt_long(argc, argv, "ad:efFh:j:n:N:p:P:qt:U:vwWzZ", 
long_options, &optindex)) != -1)
        {
                switch (c)
                {
-                       case 'h':
-                               host = pg_strdup(optarg);
-                               break;
-                       case 'p':
-                               port = pg_strdup(optarg);
-                               break;
-                       case 'U':
-                               username = pg_strdup(optarg);
-                               break;
-                       case 'w':
-                               prompt_password = TRI_NO;
-                               break;
-                       case 'W':
-                               prompt_password = TRI_YES;
-                               break;
-                       case 'e':
-                               echo = true;
-                               break;
-                       case 'q':
-                               quiet = true;
+                       case 'a':
+                               objfilter |= OBJFILTER_ALL_DBS;
                                break;
                        case 'd':
                                objfilter |= OBJFILTER_DATABASE;
                                dbname = pg_strdup(optarg);
                                break;
-                       case 'z':
-                               vacopts.and_analyze = true;
+                       case 'e':
+                               echo = true;
                                break;
-                       case 'Z':
-                               vacopts.analyze_only = true;
+                       case 'f':
+                               vacopts.full = true;
                                break;
                        case 'F':
                                vacopts.freeze = true;
                                break;
-                       case 'a':
-                               objfilter |= OBJFILTER_ALL_DBS;
-                               break;
-                       case 't':
-                               {
-                                       objfilter |= OBJFILTER_TABLE;
-                                       simple_string_list_append(&objects, 
optarg);
-                                       tbl_count++;
-                                       break;
-                               }
-                       case 'f':
-                               vacopts.full = true;
-                               break;
-                       case 'v':
-                               vacopts.verbose = true;
+                       case 'h':
+                               host = pg_strdup(optarg);
                                break;
                        case 'j':
                                if (!option_parse_int(optarg, "-j/--jobs", 1, 
INT_MAX,
                                                                          
&concurrentCons))
                                        exit(1);
                                break;
+                       case 'n':
+                               objfilter |= OBJFILTER_SCHEMA;
+                               simple_string_list_append(&objects, optarg);
+                               break;
+                       case 'N':
+                               objfilter |= OBJFILTER_SCHEMA_EXCLUDE;
+                               simple_string_list_append(&objects, optarg);
+                               break;
+                       case 'p':
+                               port = pg_strdup(optarg);
+                               break;
                        case 'P':
                                if (!option_parse_int(optarg, "-P/--parallel", 
0, INT_MAX,
                                                                          
&vacopts.parallel_workers))
                                        exit(1);
                                break;
-                       case 'n':
-                               {
-                                       objfilter |= OBJFILTER_SCHEMA;
-                                       simple_string_list_append(&objects, 
optarg);
-                                       break;
-                               }
-                       case 'N':
-                               {
-                                       objfilter |= OBJFILTER_SCHEMA_EXCLUDE;
-                                       simple_string_list_append(&objects, 
optarg);
-                                       break;
-                               }
+                       case 'q':
+                               quiet = true;
+                               break;
+                       case 't':
+                               objfilter |= OBJFILTER_TABLE;
+                               simple_string_list_append(&objects, optarg);
+                               tbl_count++;
+                               break;
+                       case 'U':
+                               username = pg_strdup(optarg);
+                               break;
+                       case 'v':
+                               vacopts.verbose = true;
+                               break;
+                       case 'w':
+                               prompt_password = TRI_NO;
+                               break;
+                       case 'W':
+                               prompt_password = TRI_YES;
+                               break;
+                       case 'z':
+                               vacopts.and_analyze = true;
+                               break;
+                       case 'Z':
+                               vacopts.analyze_only = true;
+                               break;
                        case 2:
                                maintenance_db = pg_strdup(optarg);
                                break;
diff --git a/src/interfaces/ecpg/preproc/ecpg.c 
b/src/interfaces/ecpg/preproc/ecpg.c
index 6fff9e78ed..1790a5844f 100644
--- a/src/interfaces/ecpg/preproc/ecpg.c
+++ b/src/interfaces/ecpg/preproc/ecpg.c
@@ -157,48 +157,13 @@ main(int argc, char *const argv[])
        }
 
        output_filename = NULL;
-       while ((c = getopt_long(argc, argv, "vcio:I:tD:dC:r:h", ecpg_options, 
NULL)) != -1)
+       while ((c = getopt_long(argc, argv, "cC:dD:hiI:o:r:tv", ecpg_options, 
NULL)) != -1)
        {
                switch (c)
                {
-                       case ECPG_GETOPT_LONG_REGRESSION:
-                               regression_mode = true;
-                               break;
-                       case 'o':
-                               output_filename = mm_strdup(optarg);
-                               if (strcmp(output_filename, "-") == 0)
-                                       base_yyout = stdout;
-                               else
-                                       base_yyout = fopen(output_filename, 
PG_BINARY_W);
-
-                               if (base_yyout == NULL)
-                               {
-                                       fprintf(stderr, _("%s: could not open 
file \"%s\": %s\n"),
-                                                       progname, 
output_filename, strerror(errno));
-                                       output_filename = NULL;
-                               }
-                               else
-                                       out_option = 1;
-                               break;
-                       case 'I':
-                               add_include_path(optarg);
-                               break;
-                       case 't':
-                               autocommit = true;
-                               break;
-                       case 'v':
-                               verbose = true;
-                               break;
-                       case 'h':
-                               header_mode = true;
-                               /* this must include "-c" to make sense, so 
fall through */
-                               /* FALLTHROUGH */
                        case 'c':
                                auto_create_c = true;
                                break;
-                       case 'i':
-                               system_includes = true;
-                               break;
                        case 'C':
                                if (pg_strcasecmp(optarg, "INFORMIX") == 0 || 
pg_strcasecmp(optarg, "INFORMIX_SE") == 0)
                                {
@@ -220,6 +185,44 @@ main(int argc, char *const argv[])
                                        return ILLEGAL_OPTION;
                                }
                                break;
+                       case 'd':
+#ifdef YYDEBUG
+                               base_yydebug = 1;
+#else
+                               fprintf(stderr, _("%s: parser debug support 
(-d) not available\n"),
+                                               progname);
+#endif
+                               break;
+                       case 'D':
+                               add_preprocessor_define(optarg);
+                               break;
+                       case 'h':
+                               header_mode = true;
+                               /* this must include "-c" to make sense: */
+                               auto_create_c = true;
+                               break;
+                       case 'i':
+                               system_includes = true;
+                               break;
+                       case 'I':
+                               add_include_path(optarg);
+                               break;
+                       case 'o':
+                               output_filename = mm_strdup(optarg);
+                               if (strcmp(output_filename, "-") == 0)
+                                       base_yyout = stdout;
+                               else
+                                       base_yyout = fopen(output_filename, 
PG_BINARY_W);
+
+                               if (base_yyout == NULL)
+                               {
+                                       fprintf(stderr, _("%s: could not open 
file \"%s\": %s\n"),
+                                                       progname, 
output_filename, strerror(errno));
+                                       output_filename = NULL;
+                               }
+                               else
+                                       out_option = 1;
+                               break;
                        case 'r':
                                if (pg_strcasecmp(optarg, "no_indicator") == 0)
                                        force_indicator = false;
@@ -233,16 +236,14 @@ main(int argc, char *const argv[])
                                        return ILLEGAL_OPTION;
                                }
                                break;
-                       case 'D':
-                               add_preprocessor_define(optarg);
+                       case 't':
+                               autocommit = true;
                                break;
-                       case 'd':
-#ifdef YYDEBUG
-                               base_yydebug = 1;
-#else
-                               fprintf(stderr, _("%s: parser debug support 
(-d) not available\n"),
-                                               progname);
-#endif
+                       case 'v':
+                               verbose = true;
+                               break;
+                       case ECPG_GETOPT_LONG_REGRESSION:
+                               regression_mode = true;
                                break;
                        default:
                                fprintf(stderr, _("Try \"%s --help\" for more 
information.\n"), argv[0]);
diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c 
b/src/test/modules/libpq_pipeline/libpq_pipeline.c
index a37e4e2500..f5642ffaa2 100644
--- a/src/test/modules/libpq_pipeline/libpq_pipeline.c
+++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c
@@ -1705,13 +1705,10 @@ main(int argc, char **argv)
        PGresult   *res;
        int                     c;
 
-       while ((c = getopt(argc, argv, "t:r:")) != -1)
+       while ((c = getopt(argc, argv, "r:t:")) != -1)
        {
                switch (c)
                {
-                       case 't':                       /* trace file */
-                               tracefile = pg_strdup(optarg);
-                               break;
                        case 'r':                       /* numrows */
                                errno = 0;
                                numrows = strtol(optarg, NULL, 10);
@@ -1722,6 +1719,9 @@ main(int argc, char **argv)
                                        exit(1);
                                }
                                break;
+                       case 't':                       /* trace file */
+                               tracefile = pg_strdup(optarg);
+                               break;
                }
        }
 
-- 
2.38.1

Reply via email to