#include <stdio.h>
#include <stdlib.h>
#include <libpq-fe.h>
#include <string.h>
 
int main() 
{
	PGconn *conn;
	PGresult *res;
	int rec_count;
	int row;
	int col;

	conn = PQconnectdb("dbname=test host=localhost user=abc password=xyz");
 
    if(PQstatus(conn) == CONNECTION_BAD) {
    	puts("We were unable to connect to the database");
        exit(0);
    }

	res = PQexec(conn,"INSERT INTO people VALUES (5, 'XXX', 'YYY', '7633839276');");
	if(PQresultStatus(res) != PGRES_COMMAND_OK) {
		fprintf(stderr, "Insertion Failed: %s", PQerrorMessage(conn));
		PQclear(res);
    }
	else
		printf("Successfully inserted value in Table..... \n");

    res = PQexec(conn,"update people set phonenumber=\'5055559999\' where id=3");
 	res = PQexec(conn,"select lastname,firstname,phonenumber from people order by id");
 	res = PQexec(conn, "ALTER TABLE people ADD comment VARCHAR(100);");
 	res = PQexec(conn, "EXEC('UPDATE people SET comment = ''TRUE'';');");

    if(PQresultStatus(res) != PGRES_TUPLES_OK) {
		puts("We did not get any data!");
        exit(0);
    }
 
	rec_count = PQntuples(res);
 
    printf("We received %d records.\n", rec_count);
    puts("==========================");
 
    for(row=0; row<rec_count; row++) {
        for(col=0; col<3; col++) {
            printf("%s\t", PQgetvalue(res, row, col));
        }
    	puts("");
    }
 
    puts("==========================");
 
    PQclear(res);
 
    PQfinish(conn);
 
    return 0;
}