summaryrefslogtreecommitdiff
path: root/contrib/pgbench/pgbench.c
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>2007-07-06 20:17:02 +0000
committerJan Wieck <JanWieck@Yahoo.com>2007-07-06 20:17:02 +0000
commit9fbcf6625efb0432e3a6f932a768274cd2a297e9 (patch)
treea6a0cf7708685a93c6e9a617fafa33bd357fd71d /contrib/pgbench/pgbench.c
parent0f17da9b3e13674188a951473d3951db4b162285 (diff)
downloadpostgresql-9fbcf6625efb0432e3a6f932a768274cd2a297e9.tar.gz
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 77d3a735d0..ae8bfaa167 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]);
}