I think I'd like to quibble with some of the names a bit, though.

That is a good idea, because I'm not a native English speaker and I was not so sure for many options.

The patch adds --fill-factor, but I think we should spell it
without the hyphen: --fillfactor.

Fine with me.

I think --quiet-log should be spelled --quiet.

ISTM that --quiet usually means "not verbose on stdout", so I added log because this was specific to the log output, and that there may be a need for a --quiet option for stdout at some time.

I think --connect for each connection is not very descriptive; maybe --connection-per-transaction or something, although that's kind of long.

Yes, I think that it is too long. You have to type them!

What about '--reconnect'?

 I think -M should be aliased to --protocol, not --query-mode.

Fine with me.

--skip-some-update is incorrectly pluralized; if that's
what we're going to use, it should be --skip-some-updates.

Indeed.

Alternatively, we could use --update-large-tables-only, which might
make the intent more clear.

Yep, but quite long.

On another note, it doesn't look like this updates the output of
pgbench --help, which seems important.

Indeed, it should.

Please find attached a v4 which takes into account most of your comments, but "very very long" option names.

--
Fabien.
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index 1303217..e8126f5 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -329,11 +329,16 @@ usage(void)
 		   "Usage:\n"
 		   "  %s [OPTION]... [DBNAME]\n"
 		   "\nInitialization options:\n"
-		   "  -i           invokes initialization mode\n"
-		   "  -F NUM       fill factor\n"
-		   "  -n           do not run VACUUM after initialization\n"
-		   "  -q           quiet logging (one message each 5 seconds)\n"
-		   "  -s NUM       scaling factor\n"
+		   "  -i, --initialize\n"
+		   "               invokes initialization mode\n"
+		   "  -F NUM, --fillfactor NUM\n"
+		   "               set fill factor\n"
+		   "  -n, --no-vacuum\n"
+		   "               do not run VACUUM after initialization\n"
+		   "  -q, --quiet-log\n"
+		   "               quiet logging (one message each 5 seconds)\n"
+		   "  -s NUM, --scale NUM\n"
+		   "               scaling factor\n"
 		   "  --foreign-keys\n"
 		   "               create foreign key constraints between tables\n"
 		   "  --index-tablespace=TABLESPACE\n"
@@ -343,32 +348,50 @@ usage(void)
 		   "  --unlogged-tables\n"
 		   "               create tables as unlogged tables\n"
 		   "\nBenchmarking options:\n"
-		"  -c NUM       number of concurrent database clients (default: 1)\n"
-		   "  -C           establish new connection for each transaction\n"
-		   "  -D VARNAME=VALUE\n"
+		   "  -c NUM, --client NUM\n"
+		   "               number of concurrent database clients (default: 1)\n"
+		   "  -C, --connect\n"
+		   "               establish new connection for each transaction\n"
+		   "  -D VARNAME=VALUE, --define VARNAME=VALUE\n"
 		   "               define variable for use by custom script\n"
-		   "  -f FILENAME  read transaction script from FILENAME\n"
-		   "  -j NUM       number of threads (default: 1)\n"
-		   "  -l           write transaction times to log file\n"
-		   "  -M simple|extended|prepared\n"
-		   "               protocol for submitting queries to server (default: simple)\n"
-		   "  -n           do not run VACUUM before tests\n"
-		   "  -N           do not update tables \"pgbench_tellers\" and \"pgbench_branches\"\n"
-		   "  -r           report average latency per command\n"
-		   "  -s NUM       report this scale factor in output\n"
-		   "  -S           perform SELECT-only transactions\n"
-	 "  -t NUM       number of transactions each client runs (default: 10)\n"
-		   "  -T NUM       duration of benchmark test in seconds\n"
-		   "  -v           vacuum all four standard tables before tests\n"
+		   "  -f FILENAME, --file FILENAME\n"
+		   "               read transaction script from FILENAME\n"
+		   "  -j NUM, --jobs NUM\n"
+		   "               number of threads (default: 1)\n"
+		   "  -l, --log    write transaction times to log file\n"
+		   "  -M simple|extended|prepared, --protocole ...\n"
+		   "               protocol for submitting queries to server "
+		                                           "(default: simple)\n"
+		   "  -n, --no-vacuum\n"
+		   "               do not run VACUUM before tests\n"
+		   "  -N, --skip-some-updates\n"
+		   "               do not update tables \"pgbench_tellers\""
+		                                 " and \"pgbench_branches\"\n"
+		   "  -r, --report-latencies\n"
+		   "               report average latency per command\n"
+		   "  -s NUM, --scale NUM\n"
+		   "               report this scale factor in output\n"
+		   "  -S, --select-only\n"
+		   "               perform SELECT-only transactions\n"
+		   "  -t NUM, --transactions NUM\n"
+		   "               number of transactions each client runs "
+		                                             "(default: 10)\n"
+		   "  -T NUM, --time NUM\n"
+		   "               duration of benchmark test in seconds\n"
+		   "  -v, --vacuum-all\n"
+		   "               vacuum all four standard tables before tests\n"
 		   "  --aggregate-interval=NUM\n"
 		   "               aggregate data over NUM seconds\n"
 		   "  --sampling-rate=NUM\n"
 		   "               fraction of transactions to log (e.g. 0.01 for 1%% sample)\n"
 		   "\nCommon options:\n"
-		   "  -d             print debugging output\n"
-		   "  -h HOSTNAME    database server host or socket directory\n"
-		   "  -p PORT        database server port number\n"
-		   "  -U USERNAME    connect as specified database user\n"
+		   "  -d, --debug    print debugging output\n"
+		   "  -h HOSTNAME, --host HOSTNAME\n"
+		   "                 database server host or socket directory\n"
+		   "  -p PORT, --port PORT\n"
+		   "                 database server port number\n"
+		   "  -U USERNAME, --username USERNAME\n"
+		   "                 connect as specified database user\n"
 		   "  -V, --version  output version information, then exit\n"
 		   "  -?, --help     show this help, then exit\n"
 		   "\n"
@@ -2109,6 +2132,30 @@ int
 main(int argc, char **argv)
 {
 	static struct option long_options[] = {
+		/* systematic long/short named options*/
+		{"client", required_argument, NULL, 'c'},
+		{"connect", no_argument, NULL, 'C'},
+		{"debug", no_argument, NULL, 'd'},
+		{"define", required_argument, NULL, 'D'},
+		{"file", required_argument, NULL, 'f'},
+		{"fillfactor", required_argument, NULL, 'F'},
+		{"host", required_argument, NULL, 'h'},
+		{"initialize", no_argument, NULL, 'i'},
+		{"jobs", required_argument, NULL, 'j'},
+		{"log", no_argument, NULL, 'l'},
+		{"no-vacuum", no_argument, NULL, 'n'},
+		{"port", required_argument, NULL, 'p'},
+		{"protocol", required_argument, NULL, 'M'},
+		{"quiet-log", no_argument, NULL, 'q'},
+		{"report-latencies", no_argument, NULL, 'r'},
+		{"scale", required_argument, NULL, 's'},
+		{"select-only", no_argument, NULL, 'S'},
+		{"skip-some-updates", no_argument, NULL, 'N'},
+		{"time", required_argument, NULL, 'T'},
+		{"transactions", required_argument, NULL, 't'},
+		{"username", required_argument, NULL, 'U'},
+		{"vacuum-all", no_argument, NULL, 'v'},
+		/* long-named only options */
 		{"foreign-keys", no_argument, &foreign_keys, 1},
 		{"index-tablespace", required_argument, NULL, 3},
 		{"tablespace", required_argument, NULL, 2},
diff --git a/doc/src/sgml/pgbench.sgml b/doc/src/sgml/pgbench.sgml
index 8775606..5a367ac 100644
--- a/doc/src/sgml/pgbench.sgml
+++ b/doc/src/sgml/pgbench.sgml
@@ -150,6 +150,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-i</option></term>
+      <term><option>--initialize</option></term>
       <listitem>
        <para>
         Required to invoke initialization mode.
@@ -159,6 +160,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-F</option> <replaceable>fillfactor</></term>
+      <term><option>--fillfactor</option> <replaceable>fillfactor</></term>
       <listitem>
        <para>
         Create the <structname>pgbench_accounts</>,
@@ -171,6 +173,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-n</option></term>
+      <term><option>--no-vacuum</option></term>
       <listitem>
        <para>
         Perform no vacuuming after initialization.
@@ -180,6 +183,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-q</option></term>
+      <term><option>--quiet-log</option></term>
       <listitem>
        <para>
         Switch logging to quiet mode, producing only one progress message per 5
@@ -191,6 +195,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-s</option> <replaceable>scale_factor</></term>
+      <term><option>--scale</option> <replaceable>scale_factor</></term>
       <listitem>
        <para>
         Multiply the number of rows generated by the scale factor.
@@ -259,6 +264,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-c</option> <replaceable>clients</></term>
+      <term><option>--client</option> <replaceable>clients</></term>
       <listitem>
        <para>
         Number of clients simulated, that is, number of concurrent database
@@ -269,6 +275,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-C</option></term>
+      <term><option>--connect</option></term>
       <listitem>
        <para>
         Establish a new connection for each transaction, rather than
@@ -280,6 +287,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-d</option></term>
+      <term><option>--debug</option></term>
       <listitem>
        <para>
         Print debugging output.
@@ -289,6 +297,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-D</option> <replaceable>varname</><literal>=</><replaceable>value</></term>
+      <term><option>--define</option> <replaceable>varname</><literal>=</><replaceable>value</></term>
       <listitem>
        <para>
         Define a variable for use by a custom script (see below).
@@ -299,6 +308,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-f</option> <replaceable>filename</></term>
+      <term><option>--file</option> <replaceable>filename</></term>
       <listitem>
        <para>
         Read transaction script from <replaceable>filename</>.
@@ -311,6 +321,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-j</option> <replaceable>threads</></term>
+      <term><option>--jobs</option> <replaceable>threads</></term>
       <listitem>
        <para>
         Number of worker threads within <application>pgbench</application>.
@@ -324,6 +335,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-l</option></term>
+      <term><option>--log</option></term>
       <listitem>
        <para>
         Write the time taken by each transaction to a log file.
@@ -334,6 +346,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-M</option> <replaceable>querymode</></term>
+      <term><option>--protocol</option> <replaceable>querymode</></term>
       <listitem>
        <para>
         Protocol to use for submitting queries to the server:
@@ -356,6 +369,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-n</option></term>
+      <term><option>--no-vacuum</option></term>
       <listitem>
        <para>
         Perform no vacuuming before running the test.
@@ -370,6 +384,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-N</option></term>
+      <term><option>--skip-some-updates</option></term>
       <listitem>
        <para>
         Do not update <structname>pgbench_tellers</> and
@@ -382,6 +397,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-r</option></term>
+      <term><option>--report-latencies</option></term>
       <listitem>
        <para>
         Report the average per-statement latency (execution time from the
@@ -393,6 +409,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-s</option> <replaceable>scale_factor</></term>
+      <term><option>--scale</option> <replaceable>scale_factor</></term>
       <listitem>
        <para>
         Report the specified scale factor in <application>pgbench</>'s
@@ -407,6 +424,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-S</option></term>
+      <term><option>--select-only</option></term>
       <listitem>
        <para>
         Perform select-only transactions instead of TPC-B-like test.
@@ -416,6 +434,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-t</option> <replaceable>transactions</></term>
+      <term><option>--transactions</option> <replaceable>transactions</></term>
       <listitem>
        <para>
         Number of transactions each client runs.  Default is 10.
@@ -425,6 +444,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-T</option> <replaceable>seconds</></term>
+      <term><option>--time</option> <replaceable>seconds</></term>
       <listitem>
        <para>
         Run the test for this many seconds, rather than a fixed number of
@@ -436,6 +456,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-v</option></term>
+      <term><option>--vacuum-all</option></term>
       <listitem>
        <para>
         Vacuum all four standard tables before running the test.
@@ -495,6 +516,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-h</option> <replaceable>hostname</></term>
+      <term><option>--host</option> <replaceable>hostname</></term>
       <listitem>
        <para>
         The database server's host name
@@ -504,6 +526,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-p</option> <replaceable>port</></term>
+      <term><option>--port</option> <replaceable>port</></term>
       <listitem>
        <para>
         The database server's port number
@@ -513,6 +536,7 @@ pgbench <optional> <replaceable>options</> </optional> <replaceable>dbname</>
 
      <varlistentry>
       <term><option>-U</option> <replaceable>login</></term>
+      <term><option>--username</option> <replaceable>login</></term>
       <listitem>
        <para>
         The user name to connect as
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to