aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/pgbench/pgbench.c55
1 files changed, 25 insertions, 30 deletions
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index 9183ac38686..822cb849461 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -1,5 +1,5 @@
/*
- * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.50 2006/07/26 07:24:50 ishii Exp $
+ * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.51 2006/07/28 22:58:26 ishii Exp $
*
* pgbench: a simple benchmark program for PostgreSQL
* written by Tatsuo Ishii
@@ -134,10 +134,13 @@ int num_files; /* its number */
/* default scenario */
static char *tpc_b = {
- "\\setrandom aid 1 100000\n"
- "\\setrandom bid 1 1\n"
- "\\setrandom tid 1 10\n"
- "\\setrandom delta 1 10000\n"
+ "\\set nbranches :tps\n"
+ "\\set ntellers 10 * :tps\n"
+ "\\set naccounts 100000 * :tps\n"
+ "\\setrandom aid 1 :naccounts\n"
+ "\\setrandom bid 1 :nbranches\n"
+ "\\setrandom tid 1 :ntellers\n"
+ "\\setrandom delta -5000 5000\n"
"BEGIN;\n"
"UPDATE accounts SET abalance = abalance + :delta WHERE aid = :aid;\n"
"SELECT abalance FROM accounts WHERE aid = :aid;\n"
@@ -149,10 +152,13 @@ static char *tpc_b = {
/* -N case */
static char *simple_update = {
- "\\setrandom aid 1 100000\n"
- "\\setrandom bid 1 1\n"
- "\\setrandom tid 1 10\n"
- "\\setrandom delta 1 10000\n"
+ "\\set nbranches :tps\n"
+ "\\set ntellers 10 * :tps\n"
+ "\\set naccounts 100000 * :tps\n"
+ "\\setrandom aid 1 :naccounts\n"
+ "\\setrandom bid 1 :nbranches\n"
+ "\\setrandom tid 1 :ntellers\n"
+ "\\setrandom delta -5000 5000\n"
"BEGIN;\n"
"UPDATE accounts SET abalance = abalance + :delta WHERE aid = :aid;\n"
"SELECT abalance FROM accounts WHERE aid = :aid;\n"
@@ -162,7 +168,8 @@ static char *simple_update = {
/* -S case */
static char *select_only = {
- "\\setrandom aid 1 100000\n"
+ "\\set naccounts 100000 * :tps\n"
+ "\\setrandom aid 1 :naccounts\n"
"SELECT abalance FROM accounts WHERE aid = :aid;\n"
};
@@ -570,12 +577,14 @@ top:
else
min = atoi(argv[2]);
+#ifdef NOT_USED
if (min < 0)
{
fprintf(stderr, "%s: invalid minimum number %d\n", argv[0], min);
st->ecnt++;
return;
}
+#endif
if (*argv[3] == ':')
{
@@ -597,6 +606,9 @@ top:
return;
}
+#ifdef DEBUG
+ printf("min: %d max: %d random: %d\n", min, max, getrand(min, max));
+#endif
snprintf(res, sizeof(res), "%d", getrand(min, max));
if (putVariable(st, argv[1], res) == false)
@@ -1477,38 +1489,21 @@ main(int argc, char **argv)
/* process bultin SQL scripts */
switch (ttype)
{
- char buf[128];
-
case 0:
sql_files[0] = process_builtin(tpc_b);
- snprintf(buf, sizeof(buf), "%d", 100000 * tps);
- sql_files[0][0]->argv[3] = strdup(buf);
- snprintf(buf, sizeof(buf), "%d", 1 * tps);
- sql_files[0][1]->argv[3] = strdup(buf);
- snprintf(buf, sizeof(buf), "%d", 10 * tps);
- sql_files[0][2]->argv[3] = strdup(buf);
- snprintf(buf, sizeof(buf), "%d", 10000 * tps);
- sql_files[0][3]->argv[3] = strdup(buf);
num_files = 1;
break;
+
case 1:
sql_files[0] = process_builtin(select_only);
- snprintf(buf, sizeof(buf), "%d", 100000 * tps);
- sql_files[0][0]->argv[3] = strdup(buf);
num_files = 1;
break;
+
case 2:
sql_files[0] = process_builtin(simple_update);
- snprintf(buf, sizeof(buf), "%d", 100000 * tps);
- sql_files[0][0]->argv[3] = strdup(buf);
- snprintf(buf, sizeof(buf), "%d", 1 * tps);
- sql_files[0][1]->argv[3] = strdup(buf);
- snprintf(buf, sizeof(buf), "%d", 10 * tps);
- sql_files[0][2]->argv[3] = strdup(buf);
- snprintf(buf, sizeof(buf), "%d", 10000 * tps);
- sql_files[0][3]->argv[3] = strdup(buf);
num_files = 1;
break;
+
default:
break;
}