mirror of
https://github.com/postgres/postgres.git
synced 2026-06-15 11:39:05 -04:00
amcheck: Use correct varlena size accessor in bt_normalize_tuple()
bt_normalize_tuple() uses VARSIZE() to get the size of varlena, even though it's not yet known, that it has a 4-byte header. Fix this by replacing a accessor with a universal VARSIZE_ANY(). Backpatch to all supported versions. Reported-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/7ckc7oka4bvafkf5bwlqs6ygrhlsbhz25ppozfch7zbuxcx3rf%40e4pr4oqenalc Author: Andrey Borodin <x4mmm@yandex-team.ru> Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com> Backpatch-through: 14
This commit is contained in:
parent
3e3d7875e9
commit
da1eff08a5
1 changed files with 1 additions and 1 deletions
|
|
@ -2891,7 +2891,7 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup)
|
|||
ItemPointerGetOffsetNumber(&(itup->t_tid)),
|
||||
RelationGetRelationName(state->rel))));
|
||||
else if (!VARATT_IS_COMPRESSED(DatumGetPointer(normalized[i])) &&
|
||||
VARSIZE(DatumGetPointer(normalized[i])) > TOAST_INDEX_TARGET &&
|
||||
VARSIZE_ANY(DatumGetPointer(normalized[i])) > TOAST_INDEX_TARGET &&
|
||||
(att->attstorage == TYPSTORAGE_EXTENDED ||
|
||||
att->attstorage == TYPSTORAGE_MAIN))
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue