From: | Simon Riggs <simon(at)2ndQuadrant(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, Petr Jelinek <petr(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: proposal: plpgsql - Assert statement |
Date: | 2014-11-18 16:08:05 |
Message-ID: | CA+U5nMJp+q+zCGGWYhjH1nyhQ4QK0bWhwCro5Jr+G3q5UAmvuw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 18 November 2014 12:29, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2014-11-18 16:37:20 | Re: Proposal : REINDEX SCHEMA |
Previous Message | David Fetter | 2014-11-18 15:43:57 | Re: double counting of lines in psql |