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

From Simon Riggs
Subject Re: proposal: plpgsql - Assert statement
Date
Msg-id CA+U5nMJp+q+zCGGWYhjH1nyhQ4QK0bWhwCro5Jr+G3q5UAmvuw@mail.gmail.com
Whole thread Raw
In response to Re: proposal: plpgsql - Assert statement  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: proposal: plpgsql - Assert statement  (Pavel Stehule <pavel.stehule@gmail.com>)
List 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 by date:

Previous
From: David Fetter
Date:
Subject: Re: double counting of lines in psql
Next
From: Simon Riggs
Date:
Subject: Re: Proposal : REINDEX SCHEMA