aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/pgbench/pgbench.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 06a4dfd9a8c..8b8b5911d63 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -605,6 +605,21 @@ executeStatement(PGconn *con, const char *sql)
PQclear(res);
}
+/* call PQexec() and complain, but without exiting, on failure */
+static void
+tryExecuteStatement(PGconn *con, const char *sql)
+{
+ PGresult *res;
+
+ res = PQexec(con, sql);
+ if (PQresultStatus(res) != PGRES_COMMAND_OK)
+ {
+ fprintf(stderr, "%s", PQerrorMessage(con));
+ fprintf(stderr, "(ignoring this error and continuing anyway)\n");
+ }
+ PQclear(res);
+}
+
/* set up a connection to the backend */
static PGconn *
doConnect(void)
@@ -3283,15 +3298,15 @@ main(int argc, char **argv)
if (!is_no_vacuum)
{
fprintf(stderr, "starting vacuum...");
- executeStatement(con, "vacuum pgbench_branches");
- executeStatement(con, "vacuum pgbench_tellers");
- executeStatement(con, "truncate pgbench_history");
+ tryExecuteStatement(con, "vacuum pgbench_branches");
+ tryExecuteStatement(con, "vacuum pgbench_tellers");
+ tryExecuteStatement(con, "truncate pgbench_history");
fprintf(stderr, "end.\n");
if (do_vacuum_accounts)
{
fprintf(stderr, "starting vacuum pgbench_accounts...");
- executeStatement(con, "vacuum analyze pgbench_accounts");
+ tryExecuteStatement(con, "vacuum analyze pgbench_accounts");
fprintf(stderr, "end.\n");
}
}