Re: Writeable CTEs and empty relations
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-02-10T00:19:56Z
Lists: pgsql-hackers
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