test.c
text/plain
#include <stdio.h>
#include <libpq-fe.h>
static void
run_query(PGconn *conn, const char *command)
{
int rc;
PGresult *res;
int count = 0;
fprintf(stderr, "command = %s\n", command);
rc = PQsendQuery(conn, command);
if (rc != 1)
{
char *error = PQerrorMessage(conn);
fprintf(stderr, "PQsendQuery() error: %s", error);
return;
}
while ((res = PQgetResult(conn)))
{
ExecStatusType status;
status = PQresultStatus(res);
fprintf(stderr, "result %d status = %s\n", ++count, PQresStatus(status));
fprintf(stderr, "error message = \"%s\"\n", PQresultErrorMessage(res));
PQclear(res);
}
fprintf(stderr, "\n");
return;
}
int
main()
{
PGconn *conn;
conn = PQconnectdb("");
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s\n",
PQerrorMessage(conn));
return 1;
}
run_query(conn, "SELECT 'before';");
run_query(conn, "SELECT pg_terminate_backend(pg_backend_pid());");
run_query(conn, "SELECT 'after';");
PQfinish(conn);
return 0;
}