On Wed, Mar 27, 2024 at 10:11 AM Thomas Munro <thomas.mu...@gmail.com> wrote: > > I got rid of "finished" (now represented by distance == 0, I was > removing branches and variables). I got rid of "started", which can > now be deduced (used for suppressing advice when you're calling > _next() because you need a block and we need to read it immediately), > see the function argument suppress_advice.
I started rebasing the sequential scan streaming read user over this new version, and this change (finished now represented with distance == 0) made me realize that I'm not sure what to set distance to on rescan. For sequential scan, I added a little reset function to the streaming read API (read_stream_reset()) that just releases all the buffers. Previously, it set finished to true before releasing the buffers (to indicate it was done) and then set it back to false after. Now, I'll set distance to 0 before releasing the buffers and !0 after. I could just restore whatever value distance had before I set it to 0. Or I could set it to 1. But, thinking about it, are we sure we want to ramp up in the same way on rescans? Maybe we want to use some information from the previous scan to determine what to set distance to? Maybe I'm overcomplicating it... > Here is a new proposal for the names, updated in v10: > > read_stream_begin_relation() > read_stream_next_buffer() > void read_stream_end() Personally, I'm happy with these. - Melanie