mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Add test coverage for rootdescend verification.
Commit c1afd175, which added support for rootdescend verification to amcheck, added only minimal regression test coverage. Address this by making sure that rootdescend verification is run on a multi-level index. In passing, simplify some of the regression tests that exercise multi-level nbtree page deletion. Both issues spotted while rereviewing coverage of the nbtree patch series using gcov.
This commit is contained in:
parent
86b85044e8
commit
344b7e11bb
@ -109,17 +109,17 @@ SELECT bt_index_check('bttest_multi_idx');
|
||||
|
||||
(1 row)
|
||||
|
||||
-- more expansive test for index with included columns
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true);
|
||||
-- more expansive tests for index with included columns
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true, true);
|
||||
bt_index_parent_check
|
||||
-----------------------
|
||||
|
||||
(1 row)
|
||||
|
||||
-- repeat expansive test for index built using insertions
|
||||
-- repeat expansive tests for index built using insertions
|
||||
TRUNCATE bttest_multi;
|
||||
INSERT INTO bttest_multi SELECT i, i%2 FROM generate_series(1, 100000) as i;
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true);
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true, true);
|
||||
bt_index_parent_check
|
||||
-----------------------
|
||||
|
||||
@ -131,14 +131,11 @@ SELECT bt_index_parent_check('bttest_multi_idx', true);
|
||||
--
|
||||
INSERT INTO delete_test_table SELECT i, 1, 2, 3 FROM generate_series(1,80000) i;
|
||||
ALTER TABLE delete_test_table ADD PRIMARY KEY (a,b,c,d);
|
||||
-- Delete many entries, and vacuum. This causes page deletions.
|
||||
DELETE FROM delete_test_table WHERE a > 40000;
|
||||
VACUUM delete_test_table;
|
||||
-- Delete most entries, and vacuum, deleting internal pages and creating "fast
|
||||
-- root"
|
||||
DELETE FROM delete_test_table WHERE a < 79990;
|
||||
VACUUM delete_test_table;
|
||||
SELECT bt_index_parent_check('delete_test_table_pkey', true, true);
|
||||
SELECT bt_index_parent_check('delete_test_table_pkey', true);
|
||||
bt_index_parent_check
|
||||
-----------------------
|
||||
|
||||
|
@ -69,13 +69,13 @@ COMMIT;
|
||||
|
||||
-- normal check outside of xact for index with included columns
|
||||
SELECT bt_index_check('bttest_multi_idx');
|
||||
-- more expansive test for index with included columns
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true);
|
||||
-- more expansive tests for index with included columns
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true, true);
|
||||
|
||||
-- repeat expansive test for index built using insertions
|
||||
-- repeat expansive tests for index built using insertions
|
||||
TRUNCATE bttest_multi;
|
||||
INSERT INTO bttest_multi SELECT i, i%2 FROM generate_series(1, 100000) as i;
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true);
|
||||
SELECT bt_index_parent_check('bttest_multi_idx', true, true);
|
||||
|
||||
--
|
||||
-- Test for multilevel page deletion/downlink present checks, and rootdescend
|
||||
@ -83,14 +83,11 @@ SELECT bt_index_parent_check('bttest_multi_idx', true);
|
||||
--
|
||||
INSERT INTO delete_test_table SELECT i, 1, 2, 3 FROM generate_series(1,80000) i;
|
||||
ALTER TABLE delete_test_table ADD PRIMARY KEY (a,b,c,d);
|
||||
-- Delete many entries, and vacuum. This causes page deletions.
|
||||
DELETE FROM delete_test_table WHERE a > 40000;
|
||||
VACUUM delete_test_table;
|
||||
-- Delete most entries, and vacuum, deleting internal pages and creating "fast
|
||||
-- root"
|
||||
DELETE FROM delete_test_table WHERE a < 79990;
|
||||
VACUUM delete_test_table;
|
||||
SELECT bt_index_parent_check('delete_test_table_pkey', true, true);
|
||||
SELECT bt_index_parent_check('delete_test_table_pkey', true);
|
||||
|
||||
--
|
||||
-- BUG #15597: must not assume consistent input toasting state when forming
|
||||
|
@ -3225,9 +3225,6 @@ explain (costs off)
|
||||
CREATE TABLE delete_test_table (a bigint, b bigint, c bigint, d bigint);
|
||||
INSERT INTO delete_test_table SELECT i, 1, 2, 3 FROM generate_series(1,80000) i;
|
||||
ALTER TABLE delete_test_table ADD PRIMARY KEY (a,b,c,d);
|
||||
-- Delete many entries, and vacuum. This causes page deletions.
|
||||
DELETE FROM delete_test_table WHERE a > 40000;
|
||||
VACUUM delete_test_table;
|
||||
-- Delete most entries, and vacuum, deleting internal pages and creating "fast
|
||||
-- root"
|
||||
DELETE FROM delete_test_table WHERE a < 79990;
|
||||
|
@ -1146,9 +1146,6 @@ explain (costs off)
|
||||
CREATE TABLE delete_test_table (a bigint, b bigint, c bigint, d bigint);
|
||||
INSERT INTO delete_test_table SELECT i, 1, 2, 3 FROM generate_series(1,80000) i;
|
||||
ALTER TABLE delete_test_table ADD PRIMARY KEY (a,b,c,d);
|
||||
-- Delete many entries, and vacuum. This causes page deletions.
|
||||
DELETE FROM delete_test_table WHERE a > 40000;
|
||||
VACUUM delete_test_table;
|
||||
-- Delete most entries, and vacuum, deleting internal pages and creating "fast
|
||||
-- root"
|
||||
DELETE FROM delete_test_table WHERE a < 79990;
|
||||
|
Loading…
x
Reference in New Issue
Block a user