#!/bin/bash

set -e

psql -c "create table if not exists abcdefgh (a int, b int, c int, d int, e int, f int, g int, h int);" postgres

for exp in 4 5 6 7
do
	psql -c "truncate table abcdefgh;" postgres > /dev/null
	psql -d postgres > /dev/null  <<EOF
insert into abcdefgh
select a,b,c,d,e,f,g,h from
generate_series(1,$exp) a,
generate_series(1,$exp) b,
generate_series(1,$exp) c,
generate_series(1,$exp) d,
generate_series(1,$exp) e,
generate_series(1,$exp) f,
generate_series(1,$exp) g,
generate_series(1,$exp) h;
EOF
	psql -c "vacuum freeze abcdefgh;" postgres > /dev/null
	psql -c "select pg_prewarm('abcdefgh');" postgres > /dev/null
	echo "select * from abcdefgh order by a,b,c,d,e,f,g,h;" > bench.sql
	echo -n "$exp ^ 8: "
	pgbench -n -f bench.sql -T 10 -M prepared postgres | grep latency
done
