2014-09-05 10:33 GMT+02:00 Marko Tiikkaja <ma...@joh.to>:

> On 9/5/14 10:09 AM, Pavel Stehule wrote:
>
>> I think this could still be parsed correctly, though I'm not 100% sure on
>>> that:
>>>
>>> ASSERT WARNING (EXISTS(SELECT ..)), 'data are there';
>>>
>>>
>> PLpgSQL uses a ';' or some plpgsql keyword as SQL statement delimiter. It
>> reason why RETURN QUERY ... ';' So in this case can practical to place SQL
>> statement on the end of plpgsql statement.
>>
>
> *shrug*  There are lots of cases where a comma is used as well, e.g. RAISE
> NOTICE '..', <expr>, <expr>;
>
>  parenthesis are not practical, because it is hard to identify bug ..
>>
>
> I don't see why.  The PL/PgSQL SQL parser goes to great lengths to
> identify unmatched parenthesis.  But the parens probably aren't necessary
> in the first place; you could just omit them and keep parsing until the
> next comma AFAICT.  So the syntax would be:
>
> RAISE [ NOTICE | WARNING | EXCEPTION/ASSERT/WHATEVER ]
> boolean_expr [, error_message [, error_message_param [, ... ] ] ];
>

extension RAISE about ASSERT level has minimal new value



>
>  A simplicity of integration SQL and PLpgSQL is in using "smart" keywords -
>> It is more verbose, and it allow to well diagnostics
>>
>
> I disagree.  The new keywords provide nothing of value here.  They even
> encourage the use of quirky syntax in *exchange* for verbosity ("IS NOT
> NULL pk"? really?).
>

It is about semantic and conformity of proposed tools. Sure,  all can
reduced to ASSERT(expr) .. but where is some benefit against function call

I am able to do without any change of language as plpgsql extension - there
is no necessary to do any change for too thin proposal


>
>
> .marko
>

Reply via email to