Re: Is temporary functions feature official/supported? Found someissues with it.
От | Alexey Bashtanov |
---|---|
Тема | Re: Is temporary functions feature official/supported? Found someissues with it. |
Дата | |
Msg-id | be61994e-cb5b-ae80-131b-3ae273a2f737@imap.cc обсуждение исходный текст |
Ответ на | Re: Is temporary functions feature official/supported? Found some issues with it. (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
> Hm. I can reproduce this if I start in a virgin database, but not > otherwise. for a database with a history of temporary namespaces we just need more parallel prepared transactions > There's no reason this would be special to functions. temp functions are allowed in prepared transactions, unlike tables/views -- that's the reason I thought about functions Unfortunately I failed to reproduce a crash or a data corruption. The most interesting I could see was the following: --------example 1------- -- session 1: begin; create function pg_temp.foo() returns void as $$begin end;$$ language plpgsql; prepare transaction 'z'; create function pg_temp.foo() returns void as $$begin end;$$ language plpgsql; -- session 2: commit prepared 'z'; -- session 1 prints: -- ERROR: duplicate key value violates unique constraint "pg_proc_proname_args_nsp_index" -- DETAIL: Key (proname, proargtypes, pronamespace)=(foo, , 16385) already exists. --------example 2------- -- session 1: begin; create function pg_temp.foo() returns void as $$begin end;$$ language plpgsql; -- session 2: begin; create function pg_temp.foo() returns void as $$begin end;$$ language plpgsql; -- session 1: prepare transaction 'z'; \q -- session 2: prepare transaction 'y'; \q -- session 3: begin; create temp table t(); -- session 4: commit prepared 'z'; commit prepared 'y'; -- session 3 prints: -- ERROR: duplicate key value violates unique constraint "pg_namespace_nspname_index" -- LINE 1: create temp table t(); -- ^ -- DETAIL: Key (nspname)=(pg_temp_3) already exists. Best, Alex
В списке pgsql-bugs по дате отправления: