62 lines
2.0 KiB
Ruby
62 lines
2.0 KiB
Ruby
# 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
|