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)
    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");
        }
    }