summaryrefslogtreecommitdiffstats
path: root/src/test/isolation/specs/vacuum-skip-locked.spec
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/isolation/specs/vacuum-skip-locked.spec')
-rw-r--r--src/test/isolation/specs/vacuum-skip-locked.spec61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/test/isolation/specs/vacuum-skip-locked.spec b/src/test/isolation/specs/vacuum-skip-locked.spec
new file mode 100644
index 0000000..3fad6e1
--- /dev/null
+++ b/src/test/isolation/specs/vacuum-skip-locked.spec
@@ -0,0 +1,61 @@
+# 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