mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
amcheck: Support for different header sizes of short varlena datum
In the heap, tuples may contain short varlena datum with both 1B header and 4B headers. But the corresponding index tuple should always have such varlena's with 1B headers. So, for fingerprinting, we need to convert. Backpatch to all supported versions. Discussion: https://postgr.es/m/flat/7bdbe559-d61a-4ae4-a6e1-48abdf3024cc%40postgrespro.ru Author: Michael Zhilin Reviewed-by: Alexander Lakhin, Andrey Borodin, Jian He, Alexander Korotkov Backpatch-through: 12
This commit is contained in:
@ -148,6 +148,16 @@ SELECT bt_index_check('bttest_unique_nulls_c_key', heapallindexed => true, check
|
||||
CREATE INDEX on bttest_unique_nulls (b,c);
|
||||
SELECT bt_index_check('bttest_unique_nulls_b_c_idx', heapallindexed => true, checkunique => true);
|
||||
|
||||
-- Check support of both 1B and 4B header sizes of short varlena datum
|
||||
CREATE TABLE varlena_bug (v text);
|
||||
ALTER TABLE varlena_bug ALTER column v SET storage plain;
|
||||
INSERT INTO varlena_bug VALUES ('x');
|
||||
COPY varlena_bug from stdin;
|
||||
x
|
||||
\.
|
||||
CREATE INDEX varlena_bug_idx on varlena_bug(v);
|
||||
SELECT bt_index_check('varlena_bug_idx', true);
|
||||
|
||||
-- cleanup
|
||||
DROP TABLE bttest_a;
|
||||
DROP TABLE bttest_b;
|
||||
@ -158,3 +168,4 @@ DROP FUNCTION ifun(int8);
|
||||
DROP TABLE bttest_unique_nulls;
|
||||
DROP OWNED BY regress_bttest_role; -- permissions
|
||||
DROP ROLE regress_bttest_role;
|
||||
DROP TABLE varlena_bug;
|
||||
|
Reference in New Issue
Block a user