Re: proposal: new contrib module plpgsql's embeded sql validator - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: proposal: new contrib module plpgsql's embeded sql validator
Date
Msg-id CAFj8pRChdnwAqXxuqAYVp48sWx401m2h3eLZaTqp3wkE5+=evg@mail.gmail.com
Whole thread Raw
In response to Re: proposal: new contrib module plpgsql's embeded sql validator  (Petr Jelínek <pjmodos@pjmodos.net>)
List pgsql-hackers
Dne 19. července 2011 21:15 Petr Jelínek <pjmodos@pjmodos.net> napsal(a):
> On 07/17/2011 10:31 PM, Jim Nasby wrote:
>>
>> On Jul 7, 2011, at 11:31 PM, Pavel Stehule wrote:
>>>
>>> a lazy deep SQL validation inside plpgsq functions is interesting
>>> attribute. It allows to work with temporary tables and it make testing
>>> and debugging harder, because lot of errors in embedded queries are
>>> detected too late. I wrote a simple module that can to help little
>>> bit. It is based on plpgsql plugin API and it ensures a deep
>>> validation of embedded sql early - after start of execution. I am
>>> thinking, so this plugin is really useful and it is example of plpgsql
>>> pluging - that is missing in contrib.
>>
>> I think this should at least be a contrib module; it seems very useful.
>>
>
> Yes I agree this should be part of pg distribution.
>
> But, I think we should add valitation hook to plpgsql plugin structure so
> that you don't have to actually execute the function to check it - curretly
> there are only executing hooks which is why the plugin only works when you
> the func (not good for automation).
>

should be great, but there are still few limits in compile time

* polymorphic parameters
* triggers - there are no a info about relation in compile time

we can adapt a #option keyword for using in some plpgsql plugins

for example - for addition information that are necessary for usage of
lint in compilation time

CREATE OR REPLACE FUNCTION foo ()
RETURNS ... AS $$

#option trigger_relation some_table_name
#option replace_anyelement integer

...

with this addition info it and some compile hook it is possible

Regards

Pavel



> --
> Petr Jelinek
>


pgsql-hackers by date:

Previous
From: Petr Jelínek
Date:
Subject: Re: proposal: new contrib module plpgsql's embeded sql validator
Next
From: Heikki Linnakangas
Date:
Subject: Re: [COMMITTERS] pgsql: Remove O(N^2) performance issue with multiple SAVEPOINTs.