diff options
author | Peter Geoghegan | 2020-05-04 18:23:44 +0000 |
---|---|---|
committer | Peter Geoghegan | 2020-05-04 18:23:44 +0000 |
commit | 20c6905dee43a8888090674cb3db9f953ae7f646 (patch) | |
tree | 0ccf779605307ab904e2295ae5a460c8497b983a | |
parent | 47046763c3ed1f16b81a389df7e44be5f3dba83c (diff) |
Add posting list tuple amcheck test case.
Add a test case to contrib/amcheck that creates coverage of code paths
that are used to verify posting list tuples (tuples created when
deduplication merges together existing tuples to avoid a leaf page
split).
-rw-r--r-- | contrib/amcheck/expected/check_btree.out | 11 | ||||
-rw-r--r-- | contrib/amcheck/sql/check_btree.sql | 7 |
2 files changed, 16 insertions, 2 deletions
diff --git a/contrib/amcheck/expected/check_btree.out b/contrib/amcheck/expected/check_btree.out index d7480fc96d..f82f48d23b 100644 --- a/contrib/amcheck/expected/check_btree.out +++ b/contrib/amcheck/expected/check_btree.out @@ -10,7 +10,7 @@ ALTER TABLE delete_test_table SET (autovacuum_enabled = false); INSERT INTO bttest_a SELECT * FROM generate_series(1, 100000); INSERT INTO bttest_b SELECT * FROM generate_series(100000, 1, -1); INSERT INTO bttest_multi SELECT i, i%2 FROM generate_series(1, 100000) as i; -CREATE INDEX bttest_a_idx ON bttest_a USING btree (id); +CREATE INDEX bttest_a_idx ON bttest_a USING btree (id) WITH (deduplicate_items = ON); CREATE INDEX bttest_b_idx ON bttest_b USING btree (id); CREATE UNIQUE INDEX bttest_multi_idx ON bttest_multi USING btree (id) INCLUDE (data); @@ -102,6 +102,15 @@ WHERE relation = ANY(ARRAY['bttest_a', 'bttest_a_idx', 'bttest_b', 'bttest_b_idx (0 rows) COMMIT; +-- Deduplication +TRUNCATE bttest_a; +INSERT INTO bttest_a SELECT 42 FROM generate_series(1, 2000); +SELECT bt_index_check('bttest_a_idx', true); + bt_index_check +---------------- + +(1 row) + -- normal check outside of xact for index with included columns SELECT bt_index_check('bttest_multi_idx'); bt_index_check diff --git a/contrib/amcheck/sql/check_btree.sql b/contrib/amcheck/sql/check_btree.sql index 9a1987598d..a1fef644cb 100644 --- a/contrib/amcheck/sql/check_btree.sql +++ b/contrib/amcheck/sql/check_btree.sql @@ -13,7 +13,7 @@ INSERT INTO bttest_a SELECT * FROM generate_series(1, 100000); INSERT INTO bttest_b SELECT * FROM generate_series(100000, 1, -1); INSERT INTO bttest_multi SELECT i, i%2 FROM generate_series(1, 100000) as i; -CREATE INDEX bttest_a_idx ON bttest_a USING btree (id); +CREATE INDEX bttest_a_idx ON bttest_a USING btree (id) WITH (deduplicate_items = ON); CREATE INDEX bttest_b_idx ON bttest_b USING btree (id); CREATE UNIQUE INDEX bttest_multi_idx ON bttest_multi USING btree (id) INCLUDE (data); @@ -67,6 +67,11 @@ WHERE relation = ANY(ARRAY['bttest_a', 'bttest_a_idx', 'bttest_b', 'bttest_b_idx AND pid = pg_backend_pid(); COMMIT; +-- Deduplication +TRUNCATE bttest_a; +INSERT INTO bttest_a SELECT 42 FROM generate_series(1, 2000); +SELECT bt_index_check('bttest_a_idx', true); + -- normal check outside of xact for index with included columns SELECT bt_index_check('bttest_multi_idx'); -- more expansive tests for index with included columns |