Hi, I was looking into this function, especially this block of code[1], so what I have noticed is that we always try to combine the sequential block when the lookahead blocknum is higher than the pending_read_blocknum, that's fine for ForwardScan. My question is should we do something for backward scanning as well? I mean if we haven't yet started the I/O then shouldn't we try to merge blocknum which are smaller than pending_read_blocknum which would be the normal case in backward scan. I mean we would need to change the start block number in this case though.
[1] /* Can we merge it with the pending read? */ if (stream->pending_read_nblocks > 0 && stream->pending_read_blocknum + stream->pending_read_nblocks == blocknum) { stream->pending_read_nblocks++; continue; } -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com