#!/bin/bash pgsrc=~/pg_src patch=~/pg_src/hash_inserted_sorted.v4.patch test_setup=~/setup.sql test_run_prep=~/prewarm.sql test_run=~/bench.sql test_run_clean=~/bench_clean.sql pg_install=~/pg pg_data=~/pgdata dbname=postgres pgconf=~/postgresql.conf cd $pgsrc for sha in $(git log --format="%h" --since=2022-11-01 -- src/backend/*) do echo Testing $sha git checkout $sha 2>&1 | grep -E "^HEAD" ./configure --prefix=$pg_install > /dev/null make clean -s > /dev/null make -j -s > /dev/null make install -s > /dev/null pg_ctl stop -D $pg_data > /dev/null rm -rf $pg_data initdb -D $pg_data > /dev/null 2>&1 cp $pgconf $pg_data pg_ctl start -D $pg_data -l pg.log > /dev/null psql -f $test_setup $dbname > /dev/null psql -f $test_run_prep $dbname > /dev/null for i in {1..3} do pgbench -n -t 1 -f $test_run $dbname | grep -E "^latency" psql -f $test_run_clean $dbname > /dev/null done echo Testing $sha with $patch patch -p1 < $patch > /dev/null ./configure --prefix=$pg_install > /dev/null make clean -s > /dev/null make -j -s > /dev/null make install -s > /dev/null pg_ctl stop -D $pg_data > /dev/null pg_ctl start -D $pg_data -l pg.log > /dev/null psql -f $test_run_prep $dbname > /dev/null for i in {1..3} do pgbench -n -t 1 -f $test_run $dbname | grep -E "^latency" psql -f $test_run_clean $dbname > /dev/null done patch -p1 -R < $patch > /dev/null done