tables=100 dbname=postgres for cols in 2 4 8 16 31 32 64 128 256 512 1024 do psql -c "drop table parent cascade;" $dbname &> /dev/null sql="create table parent (" for i in $(seq 1 $cols) do sql="${sql}col$i int check (col$i > 0)" if [ $i -lt $cols ]; then sql="${sql}," fi done sql="${sql});" psql -c "$sql" $dbname &> /dev/null for i in $(seq 1 $tables) do psql -c "create table child$i () inherits (parent);" $dbname > /dev/null done echo -n "pg_dump for $cols columns " { time pg_dump $dbname > /dev/null; } |& grep real done