• Andres Freund's avatar
    Improve code inferring length of bitmap for JITed tuple deforming. · 3a48005b
    Andres Freund authored
    While discussing comment improvements (see next commit) by Justin
    Pryzby, Tom complained about a few details of the logic to infer the
    length of the NULL bitmap when building the JITed tuple deforming
    function. That bitmap allows to avoid checking the tuple header's
    natts, a check which often causes a pipeline stall
    
    Improvements:
    a) As long as missing columns aren't taken into account, we can
       continue to infer the length of the NULL bitmap from NOT NULL
       columns following it. Previously we stopped at the first missing
       column.  It's unlikely to matter much in practice, but the
       alternative would have been to document why we stop.
    b) For robustness reasons it seems better to also check against
       attisdropped - RemoveAttributeById() sets attnotnull to false, but
       an additional check is trivial.
    c) Improve related comments
    
    Discussion: https://postgr.es/m/20637.1555957068@sss.pgh.pa.us
    Backpatch: -
    3a48005b
llvmjit_deform.c 20.6 KB