diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index b0e6991..b6b6a3c 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -150,6 +150,7 @@ char *pgoptions = NULL; char *pgtty = NULL; char *login = NULL; char *dbName; +const char *progname; volatile bool timer_exceeded = false; /* flag from signal handler */ @@ -334,7 +335,7 @@ xstrdup(const char *s) static void -usage(const char *progname) +usage(void) { printf("%s is a benchmarking tool for PostgreSQL.\n\n" "Usage:\n" @@ -424,10 +425,33 @@ doConnect(void) */ do { +#define PARAMS_ARRAY_SIZE 7 + + const char **keywords = xmalloc(PARAMS_ARRAY_SIZE * sizeof(*keywords)); + const char **values = xmalloc(PARAMS_ARRAY_SIZE * sizeof(*values)); + + keywords[0] = "host"; + values[0] = pghost; + keywords[1] = "port"; + values[1] = pgport; + keywords[2] = "user"; + values[2] = login; + keywords[3] = "password"; + values[3] = password; + keywords[4] = "dbname"; + values[4] = dbName; + keywords[5] = "fallback_application_name"; + values[5] = progname; + keywords[6] = NULL; + values[6] = NULL; + new_pass = false; - conn = PQsetdbLogin(pghost, pgport, pgoptions, pgtty, dbName, - login, password); + conn = PQconnectdbParams(keywords, values, true); + + free(keywords); + free(values); + if (!conn) { fprintf(stderr, "Connection to database \"%s\" failed\n", @@ -1877,15 +1901,13 @@ main(int argc, char **argv) char val[64]; - const char *progname; - progname = get_progname(argv[0]); if (argc > 1) { if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0) { - usage(progname); + usage(); exit(0); } if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)