Commit 686f15e3 authored by Tom Lane's avatar Tom Lane

Adjust pgbench so it won't spit up on non-select queries returning

tuples, which is entirely possible with custom scripts (consider
RETURNING, EXPLAIN, etc).
parent 5a7471c3
/*
* $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.60 2007/01/10 01:18:40 ishii Exp $
* $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.61 2007/01/22 02:17:30 tgl Exp $
*
* pgbench: a simple benchmark program for PostgreSQL
* written by Tatsuo Ishii
......@@ -243,17 +243,23 @@ discard_response(CState * state)
/* check to see if the SQL result was good */
static int
check(CState * state, PGresult *res, int n, int good)
check(CState *state, PGresult *res, int n)
{
CState *st = &state[n];
if (res && PQresultStatus(res) != good)
switch (PQresultStatus(res))
{
fprintf(stderr, "Client %d aborted in state %d: %s", n, st->state, PQerrorMessage(st->con));
remains--; /* I've aborted */
PQfinish(st->con);
st->con = NULL;
return (-1);
case PGRES_COMMAND_OK:
case PGRES_TUPLES_OK:
/* OK */
break;
default:
fprintf(stderr, "Client %d aborted in state %d: %s",
n, st->state, PQerrorMessage(st->con));
remains--; /* I've aborted */
PQfinish(st->con);
st->con = NULL;
return (-1);
}
return (0); /* OK */
}
......@@ -461,15 +467,10 @@ top:
if (commands[st->state]->type == SQL_COMMAND)
{
res = PQgetResult(st->con);
if (pg_strncasecmp(commands[st->state]->argv[0], "select", 6) != 0)
{
if (check(state, res, n, PGRES_COMMAND_OK))
return;
}
else
if (check(state, res, n))
{
if (check(state, res, n, PGRES_TUPLES_OK))
return;
PQclear(res);
return;
}
PQclear(res);
discard_response(st);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment