summaryrefslogtreecommitdiff
path: root/contrib/amcheck/sql
diff options
context:
space:
mode:
authorAlexander Korotkov2024-03-23 21:00:06 +0000
committerAlexander Korotkov2024-03-23 22:09:24 +0000
commitb1fe8efdf17eb4877f7c4c31c85111ec740ad872 (patch)
tree55afca0e745522a0abb804b71fc541cb783da0ac /contrib/amcheck/sql
parentab65dfb0fb2908989c0ef3330464b7af171e9728 (diff)
amcheck: Normalize index tuples containing uncompressed varlena
It might happen that the varlena value wasn't compressed by index_form_tuple() due to current storage parameters. If compression is currently enabled, we need to compress such values to match index tuple coming from the heap. Backpatch to all supported versions. Discussion: https://postgr.es/m/flat/7bdbe559-d61a-4ae4-a6e1-48abdf3024cc%40postgrespro.ru Author: Andrey Borodin Reviewed-by: Alexander Lakhin, Michael Zhilin, Jian He, Alexander Korotkov Backpatch-through: 12
Diffstat (limited to 'contrib/amcheck/sql')
-rw-r--r--contrib/amcheck/sql/check_btree.sql6
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/amcheck/sql/check_btree.sql b/contrib/amcheck/sql/check_btree.sql
index b37fff05078..68bd71b064f 100644
--- a/contrib/amcheck/sql/check_btree.sql
+++ b/contrib/amcheck/sql/check_btree.sql
@@ -158,6 +158,12 @@ x
CREATE INDEX varlena_bug_idx on varlena_bug(v);
SELECT bt_index_check('varlena_bug_idx', true);
+-- Also check that we compress varlena values, which were previously stored
+-- uncompressed in index.
+INSERT INTO varlena_bug VALUES (repeat('Test', 250));
+ALTER TABLE varlena_bug ALTER COLUMN v SET STORAGE extended;
+SELECT bt_index_check('varlena_bug_idx', true);
+
-- cleanup
DROP TABLE bttest_a;
DROP TABLE bttest_b;