Re: PSQL commands: \quit_if, \quit_unless
От | Pavel Stehule |
---|---|
Тема | Re: PSQL commands: \quit_if, \quit_unless |
Дата | |
Msg-id | CAFj8pRDCTtMcZeOk=GVom=89R18wU5NSkZ6Sz==uHrSN9AnW3g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: PSQL commands: \quit_if, \quit_unless (Fabien COELHO <coelho@cri.ensmp.fr>) |
Ответы |
Re: PSQL commands: \quit_if, \quit_unless
Re: PSQL commands: \quit_if, \quit_unless |
Список | pgsql-hackers |
2016-11-29 8:44 GMT+01:00 Fabien COELHO <coelho@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
В списке pgsql-hackers по дате отправления: