#!/bin/bash seconds=60 psql -c "drop table if exists hundredk, lookup1, lookup100;" postgres psql -c "create table hundredk (hundredk int, tenk int, thousand int, hundred int, ten int, one int);" postgres psql -c "insert into hundredk select x%100000,x%10000,x%1000,x%100,x%10,1 from generate_Series(1,100000) x;" postgres psql -c "create table lookup100 (a int);" postgres psql -c "insert into lookup100 select x from generate_Series(1,100000)x,generate_Series(1,100);" postgres psql -c "create index on lookup100 (a);" postgres psql -c "create table lookup1 (a int);" postgres psql -c "insert into lookup1 select x from generate_Series(1,100000)x;" postgres psql -c "create index on lookup1 (a);" postgres psql -c "vacuum analyze lookup1, lookup100, hundredk;" postgres for branch in master resultcache_v8 resultcache_v9 do cd pg_src git checkout $branch make clean -s make -j -s make install -s cd ./ss.sh sleep 1 psql -c "select pg_prewarm('lookup1'), pg_prewarm('lookup100'), pg_prewarm('hundredk');" postgres for tbl in lookup1 lookup100 do for target in "count(*)" "count(l.a)" "'*'" do for col in thousand hundred ten one do echo "select $target from hundredk hk inner join $tbl l on hk.$col = l.a" > bench.sql echo Testing $branch $tbl $target $col >> bench.log pgbench -n -T $seconds -f bench.sql postgres | grep latency >> bench.log done done done done