Re: Temporary tables inside functions problem

Поиск
Список
Период
Сортировка
От Sean Chittenden
Тема Re: Temporary tables inside functions problem
Дата
Msg-id 20030609070148.GE65470@perrin.int.nxad.com
обсуждение исходный текст
Ответ на Temporary tables inside functions problem  (Avi Schwartz <avi@CFFtechnologies.com>)
Список pgsql-general
> I have a function (func2) which creates 2 temporary tables when it
> starts and drops them before it returns.
> Another function (func1) calls func2.
>
> From psql:
> Calling func2 directly works fine.
> Calling func1 which in turn calls func2 works fine.
>
> From ColdFusion MX:
> If I call func2 directly from within ColdFusion it works fine.
> If I call func1 which in turn calls func2 from within ColdFusion, I get
> the following error:
>
> ERROR:  pg_class_aclcheck: relation 8392689 not found
> WARNING:  Error occurred while executing PL/pgSQL function func2
>
> It seems that the error occurs not when creating the temporary tables,
> but rather when attempting to insert into them.
>
> I am sure there is a logical explanation, although I can find it.  Any
> idea what is the problem and how I can fix it?

I just ran into this not that long ago.  Instead of using ON COMMIT
DROP, use ON COMMIT DELETE ROWS that way the oid for the temp table
can be reused inside of pl/pgsql's cache.  Tom pointed out that it
should be possible to hook up the new dependency system to the cache
and have the dependency delete expired items from the cache, but I
don't think anyone has the desire to add that at the moment.  -sc

--
Sean Chittenden

В списке pgsql-general по дате отправления:

Предыдущее
От: Arguile
Дата:
Сообщение: Re: update phenomenom
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Linux 2.6 kernel, tuned for use with databases -