pgbench has #defines for number of branches, tellers, and accounts. There are used to populate the tables with -i, but when running actual benchmark it has values separately hard-coded in the query metacommands. This patch makes the metacommands obtain their values from the relevant #defines.
It has been tested to the extent that after changing the #define naccounts downward, without the patch, after running both -i once and the benchmark itself once leads to inconsistent results (select sum(abalance) from pgbench_accounts does not equal sum(delta) from pgbench_history), while with the patch they are equal. Cheers, Jeff
Index: pgbench.c =================================================================== RCS file: /home/jjanes/pgrepo/pgsql/contrib/pgbench/pgbench.c,v retrieving revision 1.90 diff -c -r1.90 pgbench.c *** pgbench.c 3 Aug 2009 18:30:55 -0000 1.90 --- pgbench.c 31 Aug 2009 21:04:46 -0000 *************** *** 132,138 **** * end of configurable parameters *********************************************************************/ ! #define nbranches 1 #define ntellers 10 #define naccounts 100000 --- 132,138 ---- * end of configurable parameters *********************************************************************/ ! #define nbranches 1 /* Makes little sense to change this. Change -s instead */ #define ntellers 10 #define naccounts 100000 *************** *** 232,240 **** /* default scenario */ static char *tpc_b = { ! "\\set nbranches :scale\n" ! "\\set ntellers 10 * :scale\n" ! "\\set naccounts 100000 * :scale\n" "\\setrandom aid 1 :naccounts\n" "\\setrandom bid 1 :nbranches\n" "\\setrandom tid 1 :ntellers\n" --- 232,240 ---- /* default scenario */ static char *tpc_b = { ! "\\set nbranches " CppAsString2(nbranches) " * :scale\n" ! "\\set ntellers " CppAsString2(ntellers) " * :scale\n" ! "\\set naccounts " CppAsString2(naccounts) " * :scale\n" "\\setrandom aid 1 :naccounts\n" "\\setrandom bid 1 :nbranches\n" "\\setrandom tid 1 :ntellers\n" *************** *** 250,258 **** /* -N case */ static char *simple_update = { ! "\\set nbranches :scale\n" ! "\\set ntellers 10 * :scale\n" ! "\\set naccounts 100000 * :scale\n" "\\setrandom aid 1 :naccounts\n" "\\setrandom bid 1 :nbranches\n" "\\setrandom tid 1 :ntellers\n" --- 250,258 ---- /* -N case */ static char *simple_update = { ! "\\set nbranches " CppAsString2(nbranches) " * :scale\n" ! "\\set ntellers " CppAsString2(ntellers) " * :scale\n" ! "\\set naccounts " CppAsString2(naccounts) " * :scale\n" "\\setrandom aid 1 :naccounts\n" "\\setrandom bid 1 :nbranches\n" "\\setrandom tid 1 :ntellers\n" *************** *** 266,272 **** /* -S case */ static char *select_only = { ! "\\set naccounts 100000 * :scale\n" "\\setrandom aid 1 :naccounts\n" "SELECT abalance FROM pgbench_accounts WHERE aid = :aid;\n" }; --- 266,272 ---- /* -S case */ static char *select_only = { ! "\\set naccounts " CppAsString2(naccounts) " * :scale\n" "\\setrandom aid 1 :naccounts\n" "SELECT abalance FROM pgbench_accounts WHERE aid = :aid;\n" };
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers