Hi Antonin,
Thanks for the diff. I am still on 0004, so the two fixes attached are
against v03-0004 alone. They apply on top of it in this order.
1. replay_all_blocks_the_scan_passed
gap.spec still loses 40 rows with your diff. The replay must use cur, not
the old range end, because the scan skips blocks that have no tuples.
2. syncscan_wraparound
finalize_block_range() only updates range_end, so after the wrap
"blkno < range_start" stays true for every tuple. The check now follows
is_block_in_range(), and the last range is capped at range_start. 100
blocks, scan starts at 48, about 1700 boundaries before, 6 after.
With both, extend.spec and gap.spec lose no rows, and all tests pass.
Thanks,
Shihao