set -e
wget https://ftp.postgresql.org/pub/source/v9.6.7/postgresql-9.6.7.tar.bz2
wget https://ftp.postgresql.org/pub/source/v10.2/postgresql-10.2.tar.bz2
tar xvjf postgresql-9.6.7.tar.bz2
tar xvjf postgresql-10.2.tar.bz2 
cd postgresql-9.6.7/
./configure && make -j4 && mkdir tmpinst && make install DESTDIR=$(pwd)/tmpinst
cd ../postgresql-10.2/
./configure && make -j4 && mkdir tmpinst && make install DESTDIR=$(pwd)/tmpinst
cd ../postgresql-9.6.7/
export LD_LIBRARY_PATH=$(pwd)/tmpinst/usr/local/pgsql/lib64
./tmpinst/usr/local/pgsql/bin/initdb -D tmpinst/data
sed -i 's/#port = 5432\t/port = 54320\t/' tmpinst/data/postgresql.conf 
./tmpinst/usr/local/pgsql/bin/pg_ctl -D tmpinst/data -l logfile start
sleep 5
export PGPORT=54320
export PGHOST=localhost
createdb testdb
psql testdb -c 'CREATE TABLE testtab ( i integer primary key, v integer default 0 )'
psql testdb -c 'INSERT INTO testtab SELECT generate_series(1,100);'
psql testdb -c 'CREATE MATERIALIZED VIEW testmv AS select i/2 as i, sum(v) from testtab group by 1'
psql testdb -c 'CREATE UNIQUE INDEX ON testmv (i);'
psql testdb -c 'UPDATE testtab SET v = 5 WHERE i < 50;'
psql testdb -c 'REFRESH MATERIALIZED VIEW CONCURRENTLY testmv;'
psql testdb -c 'UPDATE testtab SET v = 50 WHERE i < 50;'
psql testdb -c 'REFRESH MATERIALIZED VIEW CONCURRENTLY testmv;'
psql testdb -c 'UPDATE testtab SET v = 1 WHERE i < 50;'
psql testdb -c 'REFRESH MATERIALIZED VIEW CONCURRENTLY testmv;'
./tmpinst/usr/local/pgsql/bin/pg_ctl -D tmpinst/data -l logfile stop
cd ../postgresql-10.2/
export LD_LIBRARY_PATH=$(pwd)/tmpinst/usr/local/pgsql/lib64
./tmpinst/usr/local/pgsql/bin/initdb -D tmpinst/data
sed -i 's/#port = 5432\t/port = 54320\t/' tmpinst/data/postgresql.conf 
./tmpinst/usr/local/pgsql/bin/pg_upgrade --old-datadir $(pwd)/../postgresql-9.6.7/tmpinst/data/ --new-datadir $(pwd)/tmpinst/data/ --old-bindir ../postgresql-9.6.7/tmpinst/usr/local/pgsql/bin --new-bindir $(pwd)/tmpinst/usr/local/pgsql/bin --check
./tmpinst/usr/local/pgsql/bin/pg_upgrade --old-datadir $(pwd)/../postgresql-9.6.7/tmpinst/data/ --new-datadir $(pwd)/tmpinst/data/ --old-bindir ../postgresql-9.6.7/tmpinst/usr/local/pgsql/bin --new-bindir $(pwd)/tmpinst/usr/local/pgsql/bin
./tmpinst/usr/local/pgsql/bin/pg_ctl -D tmpinst/data -l logfile start
sleep 5
. ./analyze_new_cluster.sh 
vacuumdb -z -v testdb
