Re: proposal: plpgsql pragma statement - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: proposal: plpgsql pragma statement
Date
Msg-id 8a2c8e9c-9d68-8f46-a751-ec77461a4cda@2ndQuadrant.com
Whole thread Raw
In response to Re: proposal: plpgsql pragma statement  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: proposal: plpgsql pragma statement
List pgsql-hackers
On 3/7/19 11:45 AM, Pavel Stehule wrote:
>
>
>
>
>     I have looked at the latest patch, but it seems inadequate unless I'm
>     misreading it. I think a general pragma mechanism should allow a
>     pragma
>     just about anywhere. If the processor doesn't recognize the pragma it
>     ignores it, if it does it processes it in the appropriate context.
>     That
>     could be for the next statement, the current block, or whatever. 
>     If it
>     appears in the wrong context the processor should object.
>
>
>     For example, one of Ada's predefined pragmas is PAGE, which causes a
>     processor producing a program listing to emit a page feed. (Yes, I
>     know,
>     probably silly, but you get the idea why this pragma can accur just
>     about anywhere.) There is also 'pragma Assert' which is more or less
>     like our Assert in C.
>
>
> a PRAGMA can be used on three levels (related to Postgres): function,
> block, line (and on package on Ada and PLpgSQL). Any PRAGMA has a
> scope related to usage.
>
> My first patch implemented all levels, but If I understand it well,
> Tom has strong disagreement with line's level.
>
> So I reduced it just for block level - it is good enough for
> plpgsql_check, and it is good enough for future autonomous
> transactions. Other levels can be very simply supported, but I don't
> need it, and in this moment, I had not a case for it.
>
> For plpgsql_check I need to read some non code informations like:
> disable, enable some checks, assign some type to record variable,
> assign some informations about dynamic SQL, ... I think so PRAGMA is
> very natural tool for this purpose.
>
> My implementation of PRAGMA in this moment just push some tag and some
> information to AST. It ensure correct syntax. It doesn't do more. But
> it is good enough for plpgsql_check.
>
>

That seems pretty brain-dead, TBH.

The other thing that bugs me a bit about the patch is that the only
testing it does it to make sure that pragmas are ignored by the core
plpgsql processor. Maybe that's enough, but mostly we tend to like to
have one actual use of a feature.


cheers


andrew


-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: Jesper Pedersen
Date:
Subject: Re: speeding up planning with partitions
Next
From: Pavel Stehule
Date:
Subject: Re: proposal: plpgsql pragma statement