#include #include #include #include int main() { PGconn *conn; PGresult *res; conn = PQconnectdb(""); assert(PQstatus(conn) == CONNECTION_OK); res = PQexec(conn, "SET SESSION CHARACTERISTICS AS " "TRANSACTION ISOLATION LEVEL REPEATABLE READ"); assert(PQresultStatus(res) == PGRES_COMMAND_OK); PQclear(res); res = PQexec(conn, "BEGIN"); assert(PQresultStatus(res) == PGRES_COMMAND_OK); PQclear(res); res = PQexec(conn, "hoge"); /* intentional syntax error */ assert(PQresultStatus(res) != PGRES_COMMAND_OK); PQclear(res); assert(PQtransactionStatus(conn) == PQTRANS_INERROR); res = PQprepare(conn, "r", "ROLLBACK", 0, NULL); assert(PQresultStatus(res) == PGRES_COMMAND_OK); PQclear(res); res = PQexecPrepared(conn, "r", 0, NULL, NULL, NULL, 0); assert(PQresultStatus(res) == PGRES_COMMAND_OK); PQclear(res); exit(0); }