1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
// Copyright (c) 2000-2001 David Muse
// See the file COPYING for more information
#include "../../config.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <libpq-fe.h>
PGconn *pgconn;
PGresult *pgresult;
int main(int argc, char **argv) {
if (argc<9) {
printf("usage: postgresqltest host port user password db query iterations queriesperiteration\n");
exit(0);
}
char *host=argv[1];
char *port=argv[2];
char *user=argv[3];
char *password=argv[4];
char *db=argv[5];
char *query=argv[6];
int iterations=atoi(argv[7]);
int queriesperiteration=atoi(argv[8]);
// init the timer
time_t starttime=time(NULL);
clock();
for (int count=0; count<iterations; count++) {
// log in
pgconn=PQsetdbLogin(host,port,NULL,NULL,db,user,password);
for (int qcount=0; qcount<queriesperiteration; qcount++) {
// execute the query
pgresult=PQexec(pgconn,query);
// run through the rows
int cols=PQnfields(pgresult);
int rows=PQntuples(pgresult);
for (int i=0; i<rows; i++) {
for (int j=0; j<cols; j++) {
//printf("%s,",PQgetvalue(pgresult,i,j));
PQgetvalue(pgresult,i,j);
}
//printf("\n");
}
PQclear(pgresult);
}
// log off
PQfinish(pgconn);
}
printf("total system time used: %ld\n",clock());
printf("total real time: %ld\n",time(NULL)-starttime);
}
|