Adjust pgbench option for debug mode.
Many other utilities use -d to specify the database to use, but pgbench uses it to enable debug mode. This is causing some users to accidentally enable it. This commit changes -d to accept the database name and introduces --dbname. Debug mode can still be enabled with --debug. This is a backward-incompatible change, but it has been judged to be worth the trade-off, i.e., some scripts that use pgbench will need to be updated. Author: Greg Sabino Mullane Reviewed-by: Tomas Vondra, Euler Taveira, Alvaro Herrera, David Christensen Discussion: https://postgr.es/m/CAKAnmmLjAzwVtb%3DVEaeuCtnmOLpzkJ1uJ_XiQ362YdD9B72HSg%40mail.gmail.com
This commit is contained in:
parent
374c7a2290
commit
3ff01b2b6e
|
@ -162,7 +162,8 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
|
||||||
<varlistentry id="pgbench-option-dbname">
|
<varlistentry id="pgbench-option-dbname">
|
||||||
<term><replaceable class="parameter">dbname</replaceable></term>
|
<term><option><optional>-d</optional> <replaceable class="parameter">dbname</replaceable></option></term>
|
||||||
|
<term><option><optional>--dbname=</optional><replaceable class="parameter">dbname</replaceable></option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specifies the name of the database to test in. If this is
|
Specifies the name of the database to test in. If this is
|
||||||
|
@ -463,7 +464,6 @@ pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>d
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry id="pgbench-option-debug">
|
<varlistentry id="pgbench-option-debug">
|
||||||
<term><option>-d</option></term>
|
|
||||||
<term><option>--debug</option></term>
|
<term><option>--debug</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -933,7 +933,8 @@ usage(void)
|
||||||
" --show-script=NAME show builtin script code, then exit\n"
|
" --show-script=NAME show builtin script code, then exit\n"
|
||||||
" --verbose-errors print messages of all errors\n"
|
" --verbose-errors print messages of all errors\n"
|
||||||
"\nCommon options:\n"
|
"\nCommon options:\n"
|
||||||
" -d, --debug print debugging output\n"
|
" --debug print debugging output\n"
|
||||||
|
" -d, --dbname=DBNAME database name to connect to\n"
|
||||||
" -h, --host=HOSTNAME database server host or socket directory\n"
|
" -h, --host=HOSTNAME database server host or socket directory\n"
|
||||||
" -p, --port=PORT database server port number\n"
|
" -p, --port=PORT database server port number\n"
|
||||||
" -U, --username=USERNAME connect as specified database user\n"
|
" -U, --username=USERNAME connect as specified database user\n"
|
||||||
|
@ -6620,7 +6621,7 @@ main(int argc, char **argv)
|
||||||
{"builtin", required_argument, NULL, 'b'},
|
{"builtin", required_argument, NULL, 'b'},
|
||||||
{"client", required_argument, NULL, 'c'},
|
{"client", required_argument, NULL, 'c'},
|
||||||
{"connect", no_argument, NULL, 'C'},
|
{"connect", no_argument, NULL, 'C'},
|
||||||
{"debug", no_argument, NULL, 'd'},
|
{"dbname", required_argument, NULL, 'd'},
|
||||||
{"define", required_argument, NULL, 'D'},
|
{"define", required_argument, NULL, 'D'},
|
||||||
{"file", required_argument, NULL, 'f'},
|
{"file", required_argument, NULL, 'f'},
|
||||||
{"fillfactor", required_argument, NULL, 'F'},
|
{"fillfactor", required_argument, NULL, 'F'},
|
||||||
|
@ -6661,6 +6662,7 @@ main(int argc, char **argv)
|
||||||
{"max-tries", required_argument, NULL, 14},
|
{"max-tries", required_argument, NULL, 14},
|
||||||
{"verbose-errors", no_argument, NULL, 15},
|
{"verbose-errors", no_argument, NULL, 15},
|
||||||
{"exit-on-abort", no_argument, NULL, 16},
|
{"exit-on-abort", no_argument, NULL, 16},
|
||||||
|
{"debug", no_argument, NULL, 17},
|
||||||
{NULL, 0, NULL, 0}
|
{NULL, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6732,7 +6734,7 @@ main(int argc, char **argv)
|
||||||
if (!set_random_seed(getenv("PGBENCH_RANDOM_SEED")))
|
if (!set_random_seed(getenv("PGBENCH_RANDOM_SEED")))
|
||||||
pg_fatal("error while setting random seed from PGBENCH_RANDOM_SEED environment variable");
|
pg_fatal("error while setting random seed from PGBENCH_RANDOM_SEED environment variable");
|
||||||
|
|
||||||
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)
|
while ((c = getopt_long(argc, argv, "b:c:Cd:D:f:F:h:iI:j:lL:M:nNp:P:qrR:s:St:T:U:v", long_options, &optindex)) != -1)
|
||||||
{
|
{
|
||||||
char *script;
|
char *script;
|
||||||
|
|
||||||
|
@ -6773,7 +6775,7 @@ main(int argc, char **argv)
|
||||||
is_connect = true;
|
is_connect = true;
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
pg_logging_increase_verbosity();
|
dbName = pg_strdup(optarg);
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
{
|
{
|
||||||
|
@ -6998,6 +7000,9 @@ main(int argc, char **argv)
|
||||||
benchmarking_option_set = true;
|
benchmarking_option_set = true;
|
||||||
exit_on_abort = true;
|
exit_on_abort = true;
|
||||||
break;
|
break;
|
||||||
|
case 17: /* debug */
|
||||||
|
pg_logging_increase_verbosity();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
/* getopt_long already emitted a complaint */
|
/* getopt_long already emitted a complaint */
|
||||||
pg_log_error_hint("Try \"%s --help\" for more information.", progname);
|
pg_log_error_hint("Try \"%s --help\" for more information.", progname);
|
||||||
|
@ -7048,16 +7053,19 @@ main(int argc, char **argv)
|
||||||
*/
|
*/
|
||||||
throttle_delay *= nthreads;
|
throttle_delay *= nthreads;
|
||||||
|
|
||||||
if (argc > optind)
|
if (dbName == NULL)
|
||||||
dbName = argv[optind++];
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if ((env = getenv("PGDATABASE")) != NULL && *env != '\0')
|
if (argc > optind)
|
||||||
dbName = env;
|
dbName = argv[optind++];
|
||||||
else if ((env = getenv("PGUSER")) != NULL && *env != '\0')
|
|
||||||
dbName = env;
|
|
||||||
else
|
else
|
||||||
dbName = get_user_name_or_exit(progname);
|
{
|
||||||
|
if ((env = getenv("PGDATABASE")) != NULL && *env != '\0')
|
||||||
|
dbName = env;
|
||||||
|
else if ((env = getenv("PGUSER")) != NULL && *env != '\0')
|
||||||
|
dbName = env;
|
||||||
|
else
|
||||||
|
dbName = get_user_name_or_exit(progname);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (optind < argc)
|
if (optind < argc)
|
||||||
|
|
|
@ -1352,7 +1352,7 @@ my $err_pattern =
|
||||||
. "\\1";
|
. "\\1";
|
||||||
|
|
||||||
$node->pgbench(
|
$node->pgbench(
|
||||||
"-n -c 2 -t 1 -d --verbose-errors --max-tries 2",
|
"-n -c 2 -t 1 --debug --verbose-errors --max-tries 2",
|
||||||
0,
|
0,
|
||||||
[
|
[
|
||||||
qr{processed: 2/2\b},
|
qr{processed: 2/2\b},
|
||||||
|
|
|
@ -66,7 +66,7 @@ my @options = (
|
||||||
# name, options, stderr checks
|
# name, options, stderr checks
|
||||||
[
|
[
|
||||||
'bad option',
|
'bad option',
|
||||||
'-h home -p 5432 -U calvin -d --bad-option',
|
'-h home -p 5432 -U calvin ---debug --bad-option',
|
||||||
[qr{--help.*more information}]
|
[qr{--help.*more information}]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
|
Loading…
Reference in New Issue