postgrespro.git / summary / log / commit / refs

commit    77b88bd5dc92a46319a3dd4b554f89f634bb9eaa
Author:   Peter Geoghegan <pg@bowt.ie>
Date:     Mon Mar 02 16:07:16 2020 +0000

    Add assertions to _bt_update_posting().
    
    Copy some assertions from _bt_form_posting() to its sibling function,
    _bt_update_posting().
    
    Discussion: https://postgr.es/m/CAH2-WzkPR8KMwkL0ap976kmXwBCeukTeHz6fB-U__wvuP1S9Zg@mail.gmail.com


src/backend/access/nbtree/nbtdedup.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/access/nbtree/nbtdedup.c b/src/backend/access/nbtree/nbtdedup.c index 3175d6fdd1..2434ce134b 100644 --- a/src/backend/access/nbtree/nbtdedup.c +++ b/src/backend/access/nbtree/nbtdedup.c @@ -688,6 +688,9 @@ _bt_update_posting(BTVacuumPosting vacposting) else newsize = keysize; + Assert(newsize <= INDEX_SIZE_MASK); + Assert(newsize == MAXALIGN(newsize)); + /* Allocate memory using palloc0() (matches index_form_tuple()) */ itup = palloc0(newsize); memcpy(itup, origtuple, keysize); @@ -721,6 +724,7 @@ _bt_update_posting(BTVacuumPosting vacposting) Assert(ui == nhtids); Assert(d == vacposting->ndeletedtids); Assert(nhtids == 1 || _bt_posting_valid(itup)); + Assert(nhtids > 1 || ItemPointerIsValid(&itup->t_tid)); /* vacposting arg's itup will now point to updated version */ vacposting->itup = itup; [parent: ed0d88376589]