Re: Writeable CTEs and empty relations

Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>

From: Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-02-09T22:49:07Z
Lists: pgsql-hackers
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?


Regards,
Marko Tiikkaja