pg_copy_res.c
text/x-csrc
/*
* Script to test PQcopyResult and subsequently PQsetvalue.
* Compile with for example:
* gcc -lpq -g -o pg_copy_res pg_copy_res.c
*/
#include <stdio.h>
#include <stdlib.h>
#include "libpq-fe.h"
#define DEFAULT_PORT "5432"
#define DEFAULT_HOST "/tmp"
#define DEFAULT_DB "postgres"
int
main()
{
char *port = getenv("PGPORT");
char *host = getenv("PGHOST");
char *dbname = getenv("PGDATABASE");
char connstr[512];
PGconn *conn;
PGresult *res, *res_copy;
if (port == NULL)
port = DEFAULT_PORT;
if (host == NULL)
host = DEFAULT_HOST;
if (dbname == NULL)
dbname = DEFAULT_DB;
snprintf(connstr, sizeof(connstr), "port=%s host=%s dbname=%s",
port, host, dbname);
conn = PQconnectdb(connstr);
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
return 1;
}
res = PQexec(conn, "SELECT 1");
/* Copy the resuld wanted, who care what that is... */
res_copy = PQcopyResult(res, PG_COPYRES_TUPLES | PG_COPYRES_ATTRS);
PQclear(res);
PQclear(res_copy);
PQfinish(conn);
return 0;
}