(unnamed)
text/plain
#! /bin/bash
function do_test() {
echo $1
for i in $(seq 1 14); do psql postgres -c "set max_parallel_workers_per_gather to 0; set log_min_duration_statement = 0; set client_min_messages=log; explain analyze select sum(a) from $1"; done | grep LOG
}
function do_test_union1() {
echo "UNION_pf0"
for i in $(seq 1 14); do psql postgres -c "set max_parallel_workers_per_gather to 0; set log_min_duration_statement = 0; set client_min_messages=log; SELECT sum(a) FROM (SELECT a FROM ft10 UNION ALL SELECT a FROM ft20 UNION ALL SELECT a FROM ft30 UNION ALL SELECT a FROM ft40) as pf0"; done | grep LOG
}
function do_test_union2() {
echo "UNION_pf1"
for i in $(seq 1 14); do psql postgres -c "set max_parallel_workers_per_gather to 0; set log_min_duration_statement = 0; set client_min_messages=log; SELECT sum(a) FROM (SELECT a FROM ft11 UNION ALL SELECT a FROM ft22 UNION ALL SELECT a FROM ft33 UNION ALL SELECT a FROM ft44) as pf1"; done | grep LOG
}
function warmup() {
for i in $(seq 1 5); do psql postgres -c "set log_min_duration_statement = -1; select sum(a) from $1"; done 1>&2 > /dev/null
}
#for t in "t0" "pll";
#for t in "ft0" "pf0" "pf1" "ptf0" "ptf1";
#for t in "pf0" "ptf0";
for t in "t0" "pll" "ft0" "pf0" "pf1" "ptf0" "ptf1";
do
warmup $t
do_test $t
done
exit
for t in "ft0" "pf0" "pf1" "ptf0" "ptf1";
do
warmup $t
do_test $t
done
#do_test_union1
#do_test_union2