2014-09-05 14:35 GMT+02:00 Jan Wieck <j...@wi3ck.info>:

> On 09/05/2014 04:40 AM, Pavel Stehule wrote:
>
>>
>>
>>
>> 2014-09-05 10:33 GMT+02:00 Marko Tiikkaja <ma...@joh.to
>> <mailto: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
>>
>
> Adding a WHEN clause to RAISE would have the benefit of not needing any
> new keywords at all.
>
> RAISE EXCEPTION 'format' [, expr ...] WHEN row_count <> 1;
>

It was one my older proposal.

Can we find a agreement there?

Pavel


>
>
> Regards,
> Jan
>
>
>
>>
>>         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
>>
>>
>>
>
> --
> Jan Wieck
> Senior Software Engineer
> http://slony.info
>

Reply via email to