Re: proposal: plpgsql - Assert statement
От | Simon Riggs |
---|---|
Тема | Re: proposal: plpgsql - Assert statement |
Дата | |
Msg-id | CA+U5nMJp+q+zCGGWYhjH1nyhQ4QK0bWhwCro5Jr+G3q5UAmvuw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: proposal: plpgsql - Assert statement (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: proposal: plpgsql - Assert statement
|
Список | pgsql-hackers |
On 18 November 2014 12:29, Pavel Stehule <pavel.stehule@gmail.com> wrote: >> Why is that not a requirement for a less wordier form of IF? >> >> IF (something) THEN action > > > statement IF is a control statement - and syntax, pattern for control > statements in plpgsql is consistent. I don't want to break it (more, > probably it is hardly implemented due problems in bison). PL/pgSQL, PL/SQL, > Ada are well designed (in my opinion). Conditional statement has precedent > in PL/pgSQL now. We support EXIT and CONTINUE WHEN, so we don't propose a > new pattern, only reuse some existing. I commend your wish to improve PL/pgSQL, I'm sorry to say that I just don't see how this moves us forwards. What this does is introduce a fairly restricted new feature that removes backwards compatibility and takes us further away from Oracle compatibility. If I want to write an Assert style test that fits on a single line, just write PEFORM raise_error_when(boolean expression); which requires a very short function like this CREATE OR REPLACE FUNCTION raise_error_when(test boolean) returns void language plpgsql AS $$ DECLARE BEGIN IF (test) THEN RAISE EXCEPTION 'assertion failure'; END IF; END; $$; -- Simon Riggs http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: