setup
{
    CREATE TABLE vestat (x int primary key) WITH (autovacuum_enabled = off);

}

teardown
{
    DROP TABLE vestat CASCADE;
}

session s1
step s1_set_agressive_vacuum    { SET vacuum_freeze_min_age = 0; }
step s1_insert                  { INSERT INTO vestat(x) SELECT id FROM generate_series(1,700) As id; }
step s1_update                  { UPDATE vestat SET x = x+1; }
step s1_delete_half_table       { DELETE FROM vestat WHERE x % 2 = 0; }
step s1_delete_full_table       { DELETE FROM vestat; }
step s1_vacuum                  { VACUUM vestat; }
step s1_vacuum_full             { VACUUM FULL vestat; }
step s1_vacuum_parallel         { VACUUM (PARALLEL 2, INDEX_CLEANUP ON) vestat; }
step s1_activity_print          { select application_name, backend_type from  pg_stat_activity order by (application_name, backend_type); }
step s1_print_vacuum_stats_tables
{
    SELECT n_dead_tup, n_live_tup, n_tup_del
    FROM pg_stat_all_tables vt, pg_class c
    WHERE vt.relname = 'vestat' AND
          vt.relid = c.oid;
}

permutation
    s1_insert
    s1_delete_half_table
    s1_vacuum
    s1_print_vacuum_stats_tables
    s1_delete_full_table
    s1_vacuum_parallel
    s1_print_vacuum_stats_tables
    s1_insert
    s1_update
    s1_vacuum
    s1_print_vacuum_stats_tables
