Thread

  1. Re: Should IGNORE NULLS cache nullness for volatile arguments?

    Tatsuo Ishii <ishii@postgresql.org> — 2026-05-15T07:34:25Z

    >> @@ -3454,7 +3455,10 @@ ignorenulls_getfuncarginframe(WindowObject winobj, int argno,
    >> if (isout)
    >> *isout = false;
    >> 
    >> - v = get_notnull_info(winobj, abs_pos, argno);
    >> + if (winobj->notnull_info_cacheable[argno])
    >> 
    >> What about moving this if statement inside get_notnull_info() so that
    >> the caller does not care about this argno is cacheable or not?
    >> 
    >> + /* record the row status if it is safe to reuse */
    >> + if (winobj->notnull_info_cacheable[argno])
    >> + put_notnull_info(winobj, abs_pos, argno, *isnull);
    >> 
    >> Similary, we can move "if (winobj->notnull_info_cacheable[argno])" inside put_notnull_info().
    >> 
    > 
    > Yep, good idea. Addressed in attached v2.
    
    Thanks for the v2 patch. It looks good to me. I am going to push the
    patch within a few days if there's no objection.
    
    Regards,
    --
    Tatsuo Ishii
    SRA OSS K.K.
    English: http://www.sraoss.co.jp/index_en/
    Japanese:http://www.sraoss.co.jp