From b23160889c963dfe23d8cf1f9be64fb3c535a2d6 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Fri, 14 Jun 2013 23:31:44 +0300 Subject: [PATCH] Add :client_id automatic variable for custom pgbench scripts. This makes it easier to write custom scripts that have different logic for each client. Gurjeet Singh, with some changes by me. --- contrib/pgbench/pgbench.c | 14 ++++++++++++++ doc/src/sgml/pgbench.sgml | 28 +++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index 8c202bf870..1303217086 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -2544,6 +2544,20 @@ main(int argc, char **argv) } } + /* + * Define a :client_id variable that is unique per connection. But don't + * override an explicit -D switch. + */ + if (getVariable(&state[0], "client_id") == NULL) + { + for (i = 0; i < nclients; i++) + { + snprintf(val, sizeof(val), "%d", i); + if (!putVariable(&state[i], "startup", "client_id", val)) + exit(1); + } + } + if (!is_no_vacuum) { fprintf(stderr, "starting vacuum..."); diff --git a/doc/src/sgml/pgbench.sgml b/doc/src/sgml/pgbench.sgml index e9900d3267..8775606aff 100644 --- a/doc/src/sgml/pgbench.sgml +++ b/doc/src/sgml/pgbench.sgml @@ -600,13 +600,39 @@ pgbench options dbname Variables can be set by the command-line