#!/bin/sh
if [ "x$1" = "x-delete" ] ; then
    dropdb master
    dropdb slavea
    dropdb slaveb
    dropdb slavec
    exit 0
fi

echo "Creating databases"
createdb master
createdb slavea
createdb slaveb
createdb slavec

echo "Creating tables"
echo "create table a (id serial, name varchar(255));" | psql master
echo "create table a (id serial, name varchar(255));" | psql slavea
echo "create table b (id serial, name varchar(255));" | psql master
echo "create table b (id serial, name varchar(255));" | psql slaveb
echo "create table c (id serial, name varchar(255));" | psql master
echo "create table c (id serial, name varchar(255));" | psql slavec

echo "Initializing replication"
MasterInit master
SlaveInit slavea
SlaveInit slaveb
SlaveInit slavec

echo "Adding tables for replication"
MasterAddTable master a id
MasterAddTable master b id
MasterAddTable master c id
SlaveAddTable slavea a id
SlaveAddTable slaveb b id
SlaveAddTable slavec c id

echo "Populating master tables"
cat <<END_SQL | psql master
insert into a (name) values ('A');
insert into a (name) values ('Aa');
insert into a (name) values ('AaA');
insert into a (name) values ('AaAa');
insert into a (name) values ('A123');
insert into b (name) values ('B');
insert into b (name) values ('Basdf');
insert into b (name) values ('Bf');
insert into b (name) values ('Boozle');
insert into c (name) values ('Car');
insert into c (name) values ('Carp');
insert into c (name) values ('Canada');
insert into c (name) values ('Coohie');
END_SQL

echo "Performing replication for SlaveA"
Replicate --verbose --debug --snapshot=/tmp/__Snapshot$$ master slavea a

echo "Performing replication for SlaveB"
Replicate --verbose --debug --snapshot=/tmp/__Snapshot$$ master slaveb b

echo "Performing replication for SlaveC"
Replicate --verbose --debug --snapshot=/tmp/__Snapshot$$ master slavec c

echo "Testing results in SlaveA"
echo "select * from a;" | psql slavea

echo "Testing results in SlaveB"
echo "select * from b;" | psql slaveb

echo "Testing results in SlaveC"
echo "select * from c;" | psql slavec
