#!/bin/sh
#
# Generate variuos combinations of members/offsets segments.
#

if [ -z "$OLDBIN" ]
then
	echo "Set env OLDBIN to generate clusters data."
fi

TRG=`pwd`/data
echo "Use output dir: $TRG"

rm -rf $TRG

# simple, default values
DATA=$TRG/simple
$OLDBIN/bin/initdb --no-instructions -D $DATA
$OLDBIN/bin/pg_ctl -D $DATA -l $DATA/logfile start

python3 multixids.py FOO
python3 multixids.py BAR
python3 multixids.py BAZ
python3 multixids.py QUX

$OLDBIN/bin/pg_ctl -D $DATA stop

# offset wrap
DATA=$TRG/offset-wrap
$OLDBIN/bin/initdb --no-instructions -D $DATA
$OLDBIN/bin/pg_resetwal -O 0xFFFAE007 -D $DATA
dd if=/dev/zero of=$DATA/pg_multixact/members/14071 bs=8192 count=32
$OLDBIN/bin/pg_ctl -D $DATA -l $DATA/logfile start || exit 1

python3 multixids.py FOO
python3 multixids.py BAR
python3 multixids.py BAZ
python3 multixids.py QUX

$OLDBIN/bin/pg_ctl -D $DATA stop

# multi wrap
DATA=$TRG/multi-wrap
$OLDBIN/bin/initdb --no-instructions -D $DATA
$OLDBIN/bin/pg_resetwal -m 0xFFFEF921,0xFFFEF920 -D $DATA
dd if=/dev/zero of=$DATA/pg_multixact/offsets/FFFE bs=8192 count=32
$OLDBIN/bin/pg_ctl -D $DATA -l $DATA/logfile start || exit 1

python3 multixids.py FOO
python3 multixids.py BAR
python3 multixids.py BAZ
python3 multixids.py QUX
python3 multixids.py XUQ

$OLDBIN/bin/pg_ctl -D $DATA stop

# offset and multi wrap
DATA=$TRG/offset-multi-wrap
$OLDBIN/bin/initdb --no-instructions -D $DATA
$OLDBIN/bin/pg_resetwal -m 0xFFFEF921,0xFFFEF920 -O 0xFFFAE007 -D $DATA
dd if=/dev/zero of=$DATA/pg_multixact/members/14071 bs=8192 count=32
dd if=/dev/zero of=$DATA/pg_multixact/offsets/FFFE bs=8192 count=32
$OLDBIN/bin/pg_ctl -D $DATA -l $DATA/logfile start || exit 1

# fixup db
SQL="update pg_database set
datminmxid='4294900001'
where datname='template0'"
$OLDBIN/bin/psql -c"$SQL" postgres
$OLDBIN/bin/vacuumdb -a -F --disable-page-skipping 

python3 multixids.py FOO
python3 multixids.py BAR
python3 multixids.py BAZ
python3 multixids.py QUX

$OLDBIN/bin/pg_ctl -D $DATA stop
