# Test for SKIP_LOCKED option of VACUUM and ANALYZE commands. # # This also verifies that log messages are not emitted for skipped relations # that were not specified in the VACUUM or ANALYZE command. setup { CREATE TABLE parted (a INT) PARTITION BY LIST (a); CREATE TABLE part1 PARTITION OF parted FOR VALUES IN (1); ALTER TABLE part1 SET (autovacuum_enabled = false); CREATE TABLE part2 PARTITION OF parted FOR VALUES IN (2); ALTER TABLE part2 SET (autovacuum_enabled = false); } teardown { DROP TABLE IF EXISTS parted; } session "s1" step "lock_share" { BEGIN; LOCK part1 IN SHARE MODE; } step "lock_access_exclusive" { BEGIN; LOCK part1 IN ACCESS EXCLUSIVE MODE; } step "commit" { COMMIT; } session "s2" step "vac_specified" { VACUUM (SKIP_LOCKED) part1, part2; } step "vac_all_parts" { VACUUM (SKIP_LOCKED) parted; } step "analyze_specified" { ANALYZE (SKIP_LOCKED) part1, part2; } step "analyze_all_parts" { ANALYZE (SKIP_LOCKED) parted; } step "vac_analyze_specified" { VACUUM (ANALYZE, SKIP_LOCKED) part1, part2; } step "vac_analyze_all_parts" { VACUUM (ANALYZE, SKIP_LOCKED) parted; } step "vac_full_specified" { VACUUM (SKIP_LOCKED, FULL) part1, part2; } step "vac_full_all_parts" { VACUUM (SKIP_LOCKED, FULL) parted; } permutation "lock_share" "vac_specified" "commit" permutation "lock_share" "vac_all_parts" "commit" permutation "lock_share" "analyze_specified" "commit" permutation "lock_share" "analyze_all_parts" "commit" permutation "lock_share" "vac_analyze_specified" "commit" permutation "lock_share" "vac_analyze_all_parts" "commit" permutation "lock_share" "vac_full_specified" "commit" permutation "lock_share" "vac_full_all_parts" "commit" permutation "lock_access_exclusive" "vac_specified" "commit" permutation "lock_access_exclusive" "vac_all_parts" "commit" permutation "lock_access_exclusive" "analyze_specified" "commit" permutation "lock_access_exclusive" "analyze_all_parts" "commit" permutation "lock_access_exclusive" "vac_analyze_specified" "commit" permutation "lock_access_exclusive" "vac_analyze_all_parts" "commit" permutation "lock_access_exclusive" "vac_full_specified" "commit" permutation "lock_access_exclusive" "vac_full_all_parts" "commit"