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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers