2016-11-29 8:44 GMT+01:00 Fabien COELHO <coe...@cri.ensmp.fr>:

>
> Hello,
>
> I think it's really time we seriously considered adding some flow
>>> control logic, though.
>>>
>>
>> Yeah, maybe.  I'd be interested to see a fully worked out proposal
>> for that.
>>
>
> I agree that designing a fuller proposal before including individual parts
> would be great and result in a more consistent result.
>
> In order to bootstrap the discussion, I suggest the following:
>
>  - boolexpr is a simple "boolean" (t, non 0 int, non empty string.. as
>    proposed by Corey and Pavel) or !/not boolexp ; it could be extended if
>    necessary, but I would try to avoid that, as
>

Now, the psql statements are designed do nothing in syntax error. I am not
sure about be more strict in this case. I see strong advantages - but it
can be little bit different than current behave.



>
>  - actual more complex expressions could be left to the server through SQL
>    which simplifies the client a lot by avoiding an expression language
>    altogether
>
>  - then having a conditional block is very versatile and can be adapted to
>    many use cases... maybe all
>
>  - \quit CODE, or I would prefer \exit CODE, could be used to exit while
>    controlling the status
>
> It could look like (although I do not like gset in this context, but
> anyway):
>
>  SELECT ... AS has_foo_extension \gset
>  SELECT ... AS has_bla_extension \gset
>  \if :has_foo_extension
>    ...
>  \elif :has_bla_extension
>    ...
>  \else -- no foo nor bla extension
>    \echo please install foo or bla extension
>    \exit 1
>  \fi -- extension
>  ...
>  SELECT ... AS has_xxx_feature \gset
>  \if ! :has_xxx_feature
>

I prefer the commands instead symbols - the parsing and processing symbols
should be more complex than it is now. A psql parser is very simple - and
any complex syntax enforces lot of code.

\if_not

Regards

Pavel


>   \echo "feature xxx is needed, aborting"
>   \exit 2
>  \fi
>  ...
>
> --
> Fabien
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>

Reply via email to