Re: Should IGNORE NULLS cache nullness for volatile arguments?

Tatsuo Ishii <ishii@postgresql.org>

From: Tatsuo Ishii <ishii@postgresql.org>
To: li.evan.chao@gmail.com
Cc: pgsql-hackers@postgresql.org, ojford@gmail.com
Date: 2026-05-15T07:34:25Z
Lists: pgsql-hackers
>> @@ -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