Ada is language with strong character, and PLpgSQL is little bit strange fork - so it isn't easy to find some form, how to solve all requirements.
My requests:
* be consistent with current PLpgSQL syntax and logic * allow some future extensibility * allow a static analyses without hard expression processing
But I am thinking so there are some points where can be some agreement - although it is not ASSERT implementation.
enhancing RAISE WHEN - please, see attached patch -
I prefer RAISE WHEN again RAISE WHERE due consistency with EXIT and CONTINUE [ WHEN ];
Short review of the patch. Note that this has nothing to do with actual assertions, at the moment it's just enhancement of RAISE statement to make it optionally conditional. As I was one of the people who voted for it I do think we want this and I like the syntax.
Code applies cleanly, seems formatted according to project standards - there is unnecessary whitespace added in variable declaration part of exec_stmt_raise which should be removed.
fixed
Passes make check, I would prefer to have little more complex expression than just "true" in the new regression test added for this feature.
fixed
Did some manual testing, seems to work as advertised.
There are no docs at the moment which is the only show-stopper that I can see so far.