Assertions in PL/PgSQL - Mailing list pgsql-hackers

Hi,

Attached is a patch for supporting assertions in PL/PgSQL.  These are
similar to the Assert() backend macro: they can be disabled during
compile time, but when enabled, abort execution if the passed expression
is not true.

A simple example:

CREATE FUNCTION delete_user(username text) RETURNS VOID AS $$
BEGIN
    DELETE FROM users WHERE users.username = delete_user.username;
    ASSERT FOUND;
END
$$ LANGUAGE plpgsql;

SELECT delete_user('mia');
ERROR:  Assertion on line 4 failed
CONTEXT:  PL/pgSQL function delete_user(text) line 4 at ASSERT


Again, I'll add this to the open commitfest, but feedback is greatly
appreciated.


Regards,
Marko Tiikkaja

Attachment

pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: git apply vs patch -p1
Next
From: Marko Tiikkaja
Date:
Subject: Re: Assertions in PL/PgSQL