Thank you this helped me fix it. I moved the "create temporary
table..." statement to the outermost calling function and changed it
from STABLE to VOLATILE. I'm not sure which change made the
difference -- I had to move the create table statement for an
additional reason.
On Sat, Dec 27, 2008 at 1:14 AM, Craig Ringer
<craig@postnewspapers.com.au> wrote:
> Eric Worden wrote:
>
>> The recursive function creates a temp table [...] I
>> have version 8.1.10.
>
> While I haven't looked in detail, I'd be surprised if this wasn't an
> issue with pre-8.3 versions lack of any way to automatically re-generate
> cached plans in functions.
>
> Try running your code on an 8.3 installation and see if you still get
> the issue. I strongly suspect you won't.
>
> If this does prove to be the case, there are workarounds for pre-8.3
> versions, usually involving the use of EXECUTE to bypass the cache and
> force re-planning of statements at every execution. However, if it's
> practical to do so upgrading to 8.3 might be a nicer and (in the long
> run) easier option.
>
> --
> Craig Ringer
>