Wouldn't it be a win for heap_tuple_toast_attrs() to fall out quickly if the tuple contains no varlena attributes? I'm thinking of adding a test like
/* Nothing to do if tuple contains no varlena fields */ if ((newtup && !HeapTupleAllFixed(newtup)) || (oldtup && !HeapTupleAllFixed(oldtup))) /* do existing processing */ This is a pretty cheap test (just checking a header flag) and saves lots of useless scanning when it succeeds. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings