Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi> writes:
> On 2010-02-08 21:30 +0200, I wrote:
>> This doesn't exactly work anymore since we modify the snapshot after
>> calling ExecInitScan(). I'm not really familiar with this part of the
>> code, so I'm asking: is there a simple enough way around this? Would
>> updating scan->rs_nblocks before scanning the first tuple be OK?
> I've looked at this some more, and the problem is a lot bigger than I
> originally thought. We'd basically be forced to do another initscan()
> before starting a new scan after the snapshot changed. One way to
> accomplish this would be that ExecutePlan() would leave a flag in EState
> whenever the scan nodes need to reinit.
> Does this sound completely unacceptable?
You still haven't explained why it's a good idea to change the snapshot
after the executor has started. Right at the moment I'm prepared to
reject the patch on that ground alone.
regards, tom lane