On 5 January 2013 19:15, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> We need a full "one-shot" concept linking the planner and executor for
>> all sorts of reasons, not just this one. We can discuss the
>> practicality of individual optimizations but the linkage should be
>> clear throughout the whole infrastructure.
>
> I thought then, and I think now, that such a concept was too squishy
> to be useful as an actual guide to what to change. The particular
> arguments you advanced then have been overtaken by events anyway;
> notably that Marti Raudsepp's work on caching stable subexpressions at
> execution seems like a much more general answer to the problem of
> handling stable functions efficiently.
I knew, and accepted that that specific optimization has been
superceded. My point is that the "one-shot" situation lends itself to
a great many optimizations and if we can pass that concept through, we
can simply get on with implementing them.
Having the planner pretend that it doesn't know what will happen at
execution time isn't sensible. Having the executor know its a one-off
will surely help somewhere along the line. It's hardly a modularity
violation to pass small, yet major pieces of information across the
divide.
-- Simon Riggs http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services