summaryrefslogtreecommitdiff
path: root/contrib/pgbench/pgbench.c
diff options
context:
space:
mode:
authorJan Wieck2007-07-06 20:17:02 +0000
committerJan Wieck2007-07-06 20:17:02 +0000
commit9fbcf6625efb0432e3a6f932a768274cd2a297e9 (patch)
treea6a0cf7708685a93c6e9a617fafa33bd357fd71d /contrib/pgbench/pgbench.c
parent0f17da9b3e13674188a951473d3951db4b162285 (diff)
Changed new \usleep command into \sleep with an optional time unit
argument to specify us, ms or s. As per suggestion by Peter E. Jan
Diffstat (limited to 'contrib/pgbench/pgbench.c')
-rw-r--r--contrib/pgbench/pgbench.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index 77d3a735d06..ae8bfaa167f 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -1,5 +1,5 @@
/*
- * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.67 2007/07/06 13:36:55 wieck Exp $
+ * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.68 2007/07/06 20:17:02 wieck Exp $
*
* pgbench: a simple benchmark program for PostgreSQL
* written by Tatsuo Ishii
@@ -727,7 +727,7 @@ top:
st->listen = 1;
}
- else if (pg_strcasecmp(argv[0], "usleep") == 0)
+ else if (pg_strcasecmp(argv[0], "sleep") == 0)
{
char *var;
int usec;
@@ -746,6 +746,16 @@ top:
else
usec = atoi(argv[1]);
+ if (argc > 2)
+ {
+ if (pg_strcasecmp(argv[2], "ms") == 0)
+ usec *= 1000;
+ else if (pg_strcasecmp(argv[2], "s") == 0)
+ usec *= 1000000;
+ }
+ else
+ usec *= 1000000;
+
gettimeofday(&now, NULL);
st->until.tv_sec = now.tv_sec + (now.tv_usec + usec) / 1000000;
st->until.tv_usec = (now.tv_usec + usec) % 1000000;
@@ -963,7 +973,7 @@ process_commands(char *buf)
fprintf(stderr, "%s: extra argument \"%s\" ignored\n",
my_commands->argv[0], my_commands->argv[j]);
}
- else if (pg_strcasecmp(my_commands->argv[0], "usleep") == 0)
+ else if (pg_strcasecmp(my_commands->argv[0], "sleep") == 0)
{
if (my_commands->argc < 2)
{
@@ -971,7 +981,19 @@ process_commands(char *buf)
return NULL;
}
- for (j = 2; j < my_commands->argc; j++)
+ if (my_commands->argc >= 3)
+ {
+ if (pg_strcasecmp(my_commands->argv[2], "us") != 0 &&
+ pg_strcasecmp(my_commands->argv[2], "ms") != 0 &&
+ pg_strcasecmp(my_commands->argv[2], "s"))
+ {
+ fprintf(stderr, "%s: unknown time unit '%s' - must be us, ms or s\n",
+ my_commands->argv[0], my_commands->argv[2]);
+ return NULL;
+ }
+ }
+
+ for (j = 3; j < my_commands->argc; j++)
fprintf(stderr, "%s: extra argument \"%s\" ignored\n",
my_commands->argv[0], my_commands->argv[j]);
}