Re: Rewrite, normal execution vs. EXPLAIN ANALYZE
Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>
From: Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2010-08-30T21:07:31Z
Lists: pgsql-hackers
Attachments
- snapshot.patch (text/plain) patch
Hi, I looked at fixing this inconsistency by making all query list snapshot handling work like EXPLAIN ANALYZE's code does. The only reason I went this way was that implementing wCTEs on top of this behaviour is a lot easier. There were three places that needed fixing. The SPI and portal logic changes were quite straightforward, but the SQL language function code previously didn't know what query trees of the execution_state list belonged to which query so there was no way to tell when we actually needed to take a new snapshot. The approach I took was to change the representation of the SQL function cache to a list of execution_state lists, and grab a new snapshot between the lists. The patch needs a bit more comments and some cleaning up, but I thought I'd get your input first. Thoughts? Regards, Marko Tiikkaja