diff --git a/contrib/pgbench/README.pgbench b/contrib/pgbench/README.pgbench index a1c04f23d8..855e6abc42 100644 --- a/contrib/pgbench/README.pgbench +++ b/contrib/pgbench/README.pgbench @@ -164,6 +164,10 @@ Basically it is same as BSD license. See pgbench.c for more details. o History +2003/06/10 + * fix uninitialized memory bug + * add support for PGHOST, PGPORT, PGUSER environment variables + 2002/07/20 * patch contributed by Neil Conway. * code/document clean up and add -l option. diff --git a/contrib/pgbench/README.pgbench_jis b/contrib/pgbench/README.pgbench_jis index cdf3f39fe8..d7e261deca 100644 --- a/contrib/pgbench/README.pgbench_jis +++ b/contrib/pgbench/README.pgbench_jis @@ -184,6 +184,10 @@ pgbench は石井 達夫によって書かれました.ライセンス条件は pgbench.c ■改定履歴 +2003/06/10 + * メモリが初期化されていないバグを修正 + * 環境変数PGHOST, PGPORT, PGUSERを認識するようにした. + 2002/07/20 * Nei Conwayさんのパッチを適用. * -l オプションの追加. diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index b41b8641b3..fc497c4862 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -1,5 +1,5 @@ /* - * $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.23 2003/05/14 03:25:56 tgl Exp $ + * $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.24 2003/06/10 09:07:15 ishii Exp $ * * pgbench: a simple TPC-B like benchmark program for PostgreSQL * written by Tatsuo Ishii @@ -694,6 +694,14 @@ main(int argc, char **argv) PGconn *con; PGresult *res; + char *env; + + if ((env = getenv("PGHOST")) != NULL && *env != '\0') + pghost = env; + if ((env = getenv("PGPORT")) != NULL && *env != '\0') + pgport = env; + else if ((env = getenv("PGUSER")) != NULL && *env != '\0') + login = env; while ((c = getopt(argc, argv, "ih:nvp:dc:t:s:U:P:CNSl")) != -1) { @@ -788,8 +796,11 @@ main(int argc, char **argv) dbName = argv[optind]; else { - dbName = getenv("USER"); - if (dbName == NULL) + if ((env = getenv("PGDATABASE")) != NULL && *env != '\0') + dbName = env; + else if (login != NULL && *login != '\0') + dbName = login; + else dbName = ""; } @@ -802,7 +813,7 @@ main(int argc, char **argv) remains = nclients; state = (CState *) malloc(sizeof(*state) * nclients); - memset(state, 0, sizeof(*state)); + memset(state, 0, sizeof(*state) * nclients); if (use_log) {