home=$HOME
master=$home/pg/install/master-opt/bin
patched=$home/pg/install/patched-opt/bin
master_data=$home/pg/data/master
patched_data=$home/pg/data/patched
logdir=$home/pg/log

# master
export PATH=$master:$PATH
which postgres
pg_ctl -D  $master_data -l $logdir/pg_master_log start

for i in 1000000 2000000 3000000 4000000 5000000 10000000; do
	psql -c "select pg_prewarm('bar_$i')" > /dev/null 2>&1
	psql -c "vacuum bar_$i" > /dev/null 2>&1
	printf "%s\t" "$i"
	echo "select * from bar_$i where o > 0 limit 1 offset $i" > /tmp/bar_limit.sql
	pgbench -n -T5 -f /tmp/bar_limit.sql | grep latency
done

pg_ctl -D  $master_data -l $logdir/pg_master_log stop

export PATH=$patched:$PATH;
which postgres
echo "executor_batch_rows=0" >> $patched_data/postgresql.conf
echo "executor_batch_rows=0"
pg_ctl -D  $patched_data -l $logdir/pg_master_log start

for i in 1000000 2000000 3000000 4000000 5000000 10000000; do
	psql -c "select pg_prewarm('bar_$i')" > /dev/null 2>&1
	psql -c "vacuum bar_$i" > /dev/null 2>&1
	printf "%s\t" "$i"
	echo "select * from bar_$i where o > 0 limit 1 offset $i" > /tmp/bar_limit.sql
	pgbench -n -T5 -f /tmp/bar_limit.sql | grep latency
done

pg_ctl -D  $patched_data -l $logdir/pg_master_log stop

which postgres
echo "executor_batch_rows=64" >> $patched_data/postgresql.conf
echo "executor_batch_rows=64"
pg_ctl -D  $patched_data -l $logdir/pg_master_log start

for i in 1000000 2000000 3000000 4000000 5000000 10000000; do
	psql -c "select pg_prewarm('bar_$i')" > /dev/null 2>&1
	psql -c "vacuum bar_$i" > /dev/null 2>&1
	printf "%s\t" "$i"
	echo "select * from bar_$i where o > 0 limit 1 offset $i" > /tmp/bar_limit.sql
	pgbench -n -T5 -f /tmp/bar_limit.sql | grep latency
done

pg_ctl -D  $patched_data -l $logdir/pg_master_log stop
