2013/12/9 Peter Eisentraut <pete...@gmx.net>

> On 12/8/13, 12:01 PM, Pavel Stehule wrote:
> > But still I have no idea, how to push check without possible slowdown
> > execution with code duplication
>
> Create a GUC parameter plpgsql.slow_checks or whatever (perhaps more
> specific), which people can turn on when they run their test suites.
>
> This doesn't really have to be all that much different from what we are
> currently doing in C with scan-build and address sanitizer, for example.
>
>
A main issue is placing these tests on critical path.

You have to check it in every expression, in every internal switch

There are two main purposes

a) ensure a expression/query is valid (not only syntax valid)
b) search all expressions/queries - visit all possible paths in code.

so you should to place new switch everywhere in plpgsql executor, where is
entry to some path.

Second issue - these check decrease a readability of plpgsql statement
executor handlers. This code is relative very readable now. With new switch
is little bit (more) less clean.

I think so fact we use a two other large statement switch (printing, free
expressions) is natural, and it hard to write it better.

Regards

Pavel

Reply via email to