Re: [WIP] Caching constant stable expressions per execution
Marti Raudsepp <marti@juffo.org>
From: Marti Raudsepp <marti@juffo.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2011-09-11T01:53:18Z
Lists: pgsql-hackers
On Sun, Sep 11, 2011 at 01:51, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Usually what people have meant when they ask for "function caching" > is that multiple executions of a given stable function with the same > argument values be folded to just one execution. In the general case > that would require some sort of hash table Right, this is more like execution-time constant folding. But I decided not to call it that since I'm not "folding" the expression. I know some people are writing queries like ts>=(SELECT now()-interval '10 days') just to cache the single value from the expression. > What you've done here is to solve the problem for the special case of > a single (textual) instance of the function called with > plan-time-constant arguments. With a small tweak it can also support functions whose arguments are (prepared query) placeholder variables. > The patch as given has a bunch of implementation issues This is my first patch that touches the more complicated internals of Postgres. I'm sure I have a lot to learn. :) Regards, Marti