Re: plpgsql_check_function - rebase for 9.3

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: plpgsql_check_function - rebase for 9.3
Дата
Msg-id CAFj8pRBmeX3PKiEYH6+Xuzawpzem-TU-fPJPxv8+Tgwdd6fFnA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: plpgsql_check_function - rebase for 9.3  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: plpgsql_check_function - rebase for 9.3
Re: plpgsql_check_function - rebase for 9.3
Список pgsql-hackers



2013/12/10 Amit Kapila <amit.kapila16@gmail.com>
On Mon, Dec 9, 2013 at 10:54 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> 2013/12/9 Amit Kapila <amit.kapila16@gmail.com>
>>
>> >
>> > There are two points, that should be solved
>> >
>> > a) introduction a dependency to other object in schema - now CREATE
>> > FUNCTION
>> > is fully independent on others
>> >
>> > b) slow start - if we check all paths on start, then start can be slower
>> > -
>> > and some functions should not work due dependency on temporary tables.
>> >
>> > I am thinking about possible marking a function by #option (we have same
>> > idea)
>> >
>> > some like
>> >
>> > #option check_on_first_start
>> > #option check_on_create
>> > #option check_newer
>>
>> what exactly check_newer means, does it mean whenever a function is
>> replaced (changed)?
>>
>
> no, it means, so request for check will be ignored ever - some functions
> cannot be deeply checked due using dynamic SQL or dynamic created data types
> - temporary tables created in functions.

Thanks for clarification, the part of name 'newer' has created
confusion. I understand
that creating/identifying dependency in some of the cases will be
quite tricky, does other
similar languages for other databases does that for all cases (objects
in dynamic statements).

I am sorry

PL/pgSQL is really specific due invisible SQL base and mixing two environments and languages in user visible area.

Is the main reason for identifying/creating dependency is to mark
function as invalid when
any dependent object is Dropped/Altered?

Now, PG has no any tool for checking dependency between functions and other objects. What has positive effects - we have very simply deploying, that works in almost use cases very well - and works with our temporary tables implementation. There is simple rule - depended object must living before they are >>used in runtime<<. But checking should not be runtime event and we would to decrease a false alarms. So we have to expect so almost all necessary object are created - it is reason, why we decided don't do check in create function statement time. We don't would to introduce new dependency if it will be possible.
 
Regards

Pavel


This thread is from quite some time, so please excuse me if I had
asked anything which has
been discussed previously.

With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

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

Предыдущее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: logical changeset generation v6.7
Следующее
От: "Etsuro Fujita"
Дата:
Сообщение: Re: Get more from indices.