Ewan, Chao, Thank you for the finding and patches. I will take care of this.
> Thanks, Chao. Patch attached. > > It drops the redundant "&& wfunc->ignore_nulls == perfunc[i].ignore_nulls" > term together with WindowStatePerFuncData.ignore_nulls, and rewords the > now-stale comment, leaving equal() to distinguish calls that differ only > in null treatment -- which it already does, since WindowFunc.ignore_nulls > is a plain scalar field that _equalWindowFunc() compares. This fixes the > same bug your v2 fixed, but removes the hand-maintained shadow copy that > was the root cause, so it can't silently drift out of sync again. > > Testing: > - Since the patch changes the layout of WindowStatePerFuncData, I also > built the whole tree with -fsanitize=alignment,undefined > -fno-sanitize-recover=alignment and re-ran make check under it: 245/245, > no runtime errors. The removed byte sat right before an 8-byte-aligned > pointer (winobj), so it was absorbed by padding and no following field > offset changes. -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp
