#!/usr/bin/bash

FRACTIONS="0.0001 0.0005"

for f in $FRACTIONS; do

	for d in 1 2 3 4; do

		sql="select * from t "
		for x in $(seq 1 $d); do
			sql="$sql join dim$x on (t.id$x = dim$x.id)"
		done

		for r in $(seq 1 10); do

			for prefetch in off on; do

				pg_ctl -D /mnt/pgdata/data-nestloop -l nestloop.log restart > /dev/null 2>&1

				sudo ./drop-caches.sh

				# random point
				rand=$(psql -t -A test -c "select (1.0 - $f) * random()")

				# start time
				s=$(psql -t -A test -c "select extract(epoch from now())")


				psql -t -A test >> explains.log <<EOF
set enable_hashjoin = off;
set enable_mergejoin = off;
set enable_nestloop_prefetch = $prefetch;
explain (analyze, timing off) $sql where r between $rand and ($rand + $f);
EOF

				# delta
				e=$(psql -t -A test -c "select (extract(epoch from now()) - $s) * 1000.0")

				echo $d $f $r $prefetch $e

			done

		done

	done

done
