Re: plan invalidation vs stored procedures
От | Marko Kreen |
---|---|
Тема | Re: plan invalidation vs stored procedures |
Дата | |
Msg-id | e51f66da0808061142t69bbb281jf10e1dde14a18e0f@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: plan invalidation vs stored procedures ("Merlin Moncure" <mmoncure@gmail.com>) |
Ответы |
Re: plan invalidation vs stored procedures
|
Список | pgsql-hackers |
On 8/6/08, Merlin Moncure <mmoncure@gmail.com> wrote: > On Wed, Aug 6, 2008 at 2:28 PM, Marko Kreen <markokr@gmail.com> wrote: > > On 8/6/08, Merlin Moncure <mmoncure@gmail.com> wrote: > >> On Wed, Aug 6, 2008 at 2:20 AM, Marko Kreen <markokr@gmail.com> wrote: > >> > But the main problem is that if the DROP/CREATE happens, the failure > >> > mode is very nasty - you get permanent error on existing backends. > >> > (Main case I'm talking about is functions calling other functions.) > >> > > >> > Some sorta recovery mode would be nice to have, it does not even > >> > need function perfectly. Giving error once and then recover would > >> > be better than requiring manual action from admin. > >> > >> sure -- this a known issue --, but the point is that there are not > >> that many reasons why you have to drop/create a function if you are > >> careful. hiding function prototypes is actually pretty powerful > >> although you have to deal with creating the extra types. > > > > Um. If you are talking about about returning type defined by CREATE TYPE > > then you are wrong as changing type requires DROP+CREATE for both type > > and function. > > you missed the point...if your return type is a composite type that is > backed by the table (CREATE TABLE, not CREATE TYPE), then you can > 'alter' the type by altering the table. This can be done without full > drop recreate of the function. Yes, although I suspect it works by accident and can lead to crash with creative use. (eg. plpgsql 'record' cache, any PL's rettype cache are not invalidated when doing the ALTER TABLE) But you missed my point: if you don't have functions backed by table, the DROP+CREATE results in inappropriate behaviour that can be avoided. -- marko
В списке pgsql-hackers по дате отправления: