test.sh

application/octet-stream

Filename: test.sh
Type: application/octet-stream
Part: 1
Message: RE: [PATCH] Reuse Workers and Replication Slots during Logical Replication
#!/bin/bash

port_N1=5431
port_N2=5432

echo 'Clean up'

pg_ctl stop -D data_N1 -w
pg_ctl stop -D data_N2 -w

rm -r data_N1 data_N2 *log

echo 'Set up'

initdb -D data_N1 -U postgres
initdb -D data_N2 -U postgres

cat << EOF >> data_N1/postgresql.conf
wal_level = logical
port = $port_N1
wal_sender_timeout = 0
log_line_prefix = '%m [%p] [%a] '
EOF

cat << EOF >> data_N2/postgresql.conf
wal_level = logical
port = $port_N2
max_sync_workers_per_subscription = 1
restart_after_crash = false
log_line_prefix = '%m [%p] [%b] '
EOF

pg_ctl -D data_N1 start -w -l N1.log
pg_ctl -D data_N2 start -w -l N2.log

for i in {0..10}
do
    echo "$i th challenge"
    psql -U postgres -p $port_N1 -c "CREATE TABLE tbl_$i (a int, b text)"
    psql -U postgres -p $port_N2 -c "CREATE TABLE tbl_$i (a int, b text)"

    psql -U postgres -p $port_N1 -c "INSERT INTO tbl_$i VALUES (1, 'a')"
done

psql -U postgres -p $port_N1 -c "CREATE PUBLICATION pub FOR ALL TABLES"
psql -U postgres -p $port_N2 -c "CREATE SUBSCRIPTION sub CONNECTION 'user=postgres dbname=postgres port=$port_N1' PUBLICATION pub"