diff options
| author | Alexander Korotkov | 2024-03-23 21:00:06 +0000 |
|---|---|---|
| committer | Alexander Korotkov | 2024-03-23 22:09:24 +0000 |
| commit | b1fe8efdf17eb4877f7c4c31c85111ec740ad872 (patch) | |
| tree | 55afca0e745522a0abb804b71fc541cb783da0ac /contrib/amcheck/sql | |
| parent | ab65dfb0fb2908989c0ef3330464b7af171e9728 (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.sql | 6 |
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; |
