diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index bb18c89..0002498 100644 *** a/contrib/pgbench/pgbench.c --- b/contrib/pgbench/pgbench.c *************** char *pgoptions = NULL; *** 142,147 **** --- 142,148 ---- char *pgtty = NULL; char *login = NULL; char *dbName; + int transact = 0; /* run in single transaction */ volatile bool timer_exceeded = false; /* flag from signal handler */ *************** usage(const char *progname) *** 349,354 **** --- 350,356 ---- " -r report average latency per command\n" " -s NUM report this scale factor in output\n" " -S perform SELECT-only transactions\n" + " -1 Perform in single transaction (only makes sense for -S, probably)" " -t NUM number of transactions each client runs (default: 10)\n" " -T NUM duration of benchmark test in seconds\n" " -v vacuum all four standard tables before tests\n" *************** main(int argc, char **argv) *** 1823,1829 **** state = (CState *) xmalloc(sizeof(CState)); memset(state, 0, sizeof(CState)); ! while ((c = getopt(argc, argv, "ih:nvp:dSNc:j:Crs:t:T:U:lf:D:F:M:")) != -1) { switch (c) { --- 1825,1831 ---- state = (CState *) xmalloc(sizeof(CState)); memset(state, 0, sizeof(CState)); ! while ((c = getopt(argc, argv, "ih:nvp:dSNc:j:Crs:t:T:U:lf:D:F:M:1")) != -1) { switch (c) { *************** main(int argc, char **argv) *** 1845,1850 **** --- 1847,1855 ---- case 'd': debug++; break; + case '1': + transact = 1; + break; case 'S': ttype = 1; break; *************** threadRun(void *arg) *** 2294,2299 **** --- 2299,2309 ---- { if ((state[i].con = doConnect()) == NULL) goto done; + if (transact>0) { + executeStatement(state[i].con, "BEGIN"); + //executeStatement(state[i].con, "lock table pgbench_accounts in access share mode"); + fprintf(stderr, "Started Transaction\n"); + }; } }